7

我有一些具有类似行为的 api 控制器。我创建了一个通用基类,它本身就是一个 api 控制器。在我的派生类中,我有一些假设应该在基本 api 控制器中解决(例如一些常见的标头值)。但我的问题是在基础 ApiController 中,“请求”对象为空!

为什么会这样,我该如何解决?(这在派生类的构造中很重要,因为我根据标头值分配值)

代码示例

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
}
4

1 回答 1

9

这与继承无关,它与ApiController尚未初始化的事实有关,并且您正试图Request从构造函数访问对象。

如果你需要在你的控制器中初始化某些东西,你应该重写Initialize方法并在那里执行它(记得调用基础!)。

于 2013-06-18T09:03:11.463 回答