Y.Y*_*.Y. 1 .net c# middleware .net-core
我有自定义中间件。我尝试构造函数注入来注入我的 DbContext。但这不起作用。以下内容不起作用并给出 InvalidOperationException:无法从根提供程序解析作用域服务“MyDbContext”;
private MyDbContext _context;
public RequestResponseMiddleware(RequestDelegate next, MyDbContext context)
{
_next = next;
_context = context;
}
Run Code Online (Sandbox Code Playgroud)
但是当我在 InvokeAsync 方法中使用它作为参数时,它就可以工作。以下作品
public Task InvokeAsync(HttpContext context, MyDbContext _context)
{
}
Run Code Online (Sandbox Code Playgroud)
有谁知道原因吗?
DbContext
通常注册为范围服务。
在中间件中使用作用域服务时,将该服务注入到
Invoke
或InvokeAsync
方法中。不要通过构造函数注入进行注入,因为它会强制服务表现得像 singleton。有关详细信息,请参阅ASP.NET Core 中间件。
强调我的
参考ASP.NET Core 中的依赖注入:作用域服务生命周期
归档时间: |
|
查看次数: |
1188 次 |
最近记录: |