c#派生自基类apicontroller——在基类中Request对象为空

本文关键字:基类 Request 对象 派生 apicontroller | 更新日期: 2023-09-27 18:18:55

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

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

Code示例

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
}

c#派生自基类apicontroller——在基类中Request对象为空

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

如果你需要在你的控制器中初始化一些东西,你应该重写initialize方法并在那里进行(记住要调用到基类中!)