我有一些具有类似行为的api控制器 . 我创建了一个公共基类,它本身就是一个api控制器 . 在我的派生类中,我有一些假设应该在基本api控制器中解决(例如一些常见的标头值) . 但我的问题是在基础ApiController中“请求”对象为空!
为什么这样,我该如何解决? (在构造派生类时非常重要,因为我根据 Headers 值分配值)
一个代码示例
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
}
1 回答
这与继承无关,它与
ApiController
尚未初始化的事实有关,并且您正尝试从构造函数访问Request
对象 .如果你需要在你的控制器中初始化一些东西你应该覆盖Initialize方法并在那里进行(记得调用基地!) .