如何在静态方法中访问DI容器长期以来一直都是一个令人苦恼的问题,特别是对于热爱编写扩展方法的朋友。之所以会为这个问题苦恼,是因为一个特殊的服务生存期——范围内(Scoped),所谓的Scoped就是范围内单例,最常见的WebAPI/MVC中一个请求对应一个范围,所有注册为Scoped的对象在同一个请求中是单例的。如果仅仅用一个静态字段存储应用启动时创建出的
IServiceProvider
对象,那么在一个请求中通过该字段是无法正确获取当前请求中创建的Scoped对象的。
.NET全局静态可访问IServiceProvider(支持Blazor)
未经允许不得转载:小狮博客 » .NET全局静态可访问IServiceProvider(支持Blazor)