Syl*_*eth 2 c# model-view-controller asp.net-mvc asp.net-core
IHttpContextAccessor 给了我:
System.NullReferenceException:“未将对象引用设置为对象的实例。”
我的HomeController:
public class HomeController : BaseController
{
private static IHttpContextAccessor httpContextAccessor;
private static seiren_devContext context;
public HomeController() : base(httpContextAccessor,context)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我的BaseController:
public class BaseController : Controller
{
protected readonly seiren_devContext _context;
protected readonly IHttpContextAccessor _httpContextAccessor;
protected ISession _session => _httpContextAccessor.HttpContext.Session;
public BaseController(IHttpContextAccessor httpContextAccessor, seiren_devContext context)
{
_context = context;
_httpContextAccessor = httpContextAccessor;
}
}
Run Code Online (Sandbox Code Playgroud)
如何让该类以正确的方式HomeController继承?BaseController
没有任何东西设置static(注意:静态在这种情况下非常糟糕)变量,HomeController因此它们将始终为空。相反,让HomeController也将这两个值作为构造函数参数,并让依赖注入系统处理其余的事情。
public class HomeController : BaseController
{
public HomeController(IHttpContextAccessor httpContextAccessor, seiren_devContext context)
: base(httpContextAccessor,context)
{
}
}
Run Code Online (Sandbox Code Playgroud)
您可能还需要在ConfigureServices您的Startup.cs:
services.AddHttpContextAccessor();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |