ASP.NET Core中singleton生命周期的服务如何注入Scoped服务?

1、加入有两个服务,Student和Glass,其中Student服务的生命周期注入为Singleton,Glass服务的生命周期注入为Scoped。.

ASP.NET Core中singleton生命周期的服务如何注入Scoped服务?

2、其中可以看到Student服务是依赖Glass服务的。

ASP.NET Core中singleton生命周期的服务如何注入Scoped服务?

3、启动服务并报错:

ASP.NET Core中singleton生命周期的服务如何注入Scoped服务?

ASP.NET Core中singleton生命周期的服务如何注入Scoped服务?

ASP.NET Core中singleton生命周期的服务如何注入Scoped服务?出现原因:

Singleton单例生命周期的服务里面依赖Scoped范围生命周期的服务是会报错的!

解决办法:

ASP.NET Core中singleton生命周期的服务如何注入Scoped服务?常见举例:BackgroundService中访问DbContext,这种是没办法直接在构造好函数中获取的!

ASP.NET Core中singleton生命周期的服务如何注入Scoped服务?