我有自定義中間件。我嘗試了構(gòu)造函數(shù)注入來注入我的 DbContext。但它不起作用。以下不起作用并給出 InvalidOperationException:無法從根提供程序解析作用域服務(wù)“MyDbContext”;private MyDbContext _context; public RequestResponseMiddleware(RequestDelegate next, MyDbContext context){ _next = next; _context = context;} 但是當(dāng)我在 InvokeAsync 方法中將它用作參數(shù)時它起作用了。以下作品public Task InvokeAsync(HttpContext context, MyDbContext _context){}有誰知道原因嗎?
1 回答

撒科打諢
TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊
DbContext
通常注冊為作用域服務(wù)。
在中間件中使用作用域服務(wù)時,將服務(wù)注入
Invoke
orInvokeAsync
方法。不要通過構(gòu)造函數(shù)注入來注入,因為它會強制服務(wù)表現(xiàn)得像 singleton。
強調(diào)我的
ASP.NET Core 中的引用依賴注入:作用域服務(wù)生命周期
- 1 回答
- 0 關(guān)注
- 112 瀏覽
添加回答
舉報
0/150
提交
取消