.net6 中间件构造函数注入时提示:Cannot resolve scoped service ‘xx.DBContext‘ from root provider

.net6 中间件构造函数注入时提示:Cannot resolve scoped service 'xx.DBContext' from root provider 是因为在单一实例解析范围内服务,默认情况下在开发环境中,从具有较长生存期的其他服务解析服务将引发异常。要在中间件中使用范围内服务,请使用以下方法之一:

一、将服务注入中间件的 Invoke 或 InvokeAsync 方法。 使用构造函数注入会引发运行时异常,因为它强制使范围内服务的行为与单一实例类似。 生存期和注册选项部分中的示例演示了 InvokeAsync 方法。

二、使用基于工厂的中间件。 使用此方法注册的中间件按客户端请求(连接)激活,这也使范围内服务可注入中间件的 InvokeAsync 方法。
-----------------------------------
参考:.Net Core依赖注入之生命周期
https://blog.51cto.com/u_15507710/5008524

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值