2013-06-18 49 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方法并在其中执行(请记住调用基本方法!)。