2013-06-18 51 views
5

我有幾個具有類似行爲的api控制器。我創建了一個本身就是api控制器的通用基類。在我的派生類中,我有一些假設應該在基本的API控制器中解決(例如一些常見的頭文件值)。但我的問題是在基地ApiController的「請求」對象爲空!c#派生自基本apicontroller - 基類中的Request對象爲null

這是爲什麼,我該如何解決?

代碼示例

BaseClass : ApiController 
{ 
public BaseClass() 
{ 
    _header1 = Request.Headers.GetValues("header1"); 
} 
} 

DerivedClass : BaseClass 
{ 
// getting error here because the base class isn't constructed because the Request object is null! and errors are thrown 
} 

回答

7

這有什麼好做的繼承,這是與事實做(因爲我是基於標頭值分配值,這是在派生類的建設的重要)的ApiController尚未初始化,您正試圖從構造函數訪問Request對象。

如果您需要在您的控制器中初始化某些東西,您應該重寫Initialize方法並在其中執行(請記住調用基本方法!)。