.NET Core是否支持服务定位器模式?

时间:2019-10-07 16:47:41

标签: dependency-injection .net-core service-locator

.net核心是否支持服务定位器模式?我实现了依赖项注入的选项,并且这被认为是一种反模式,但是我想知道.net核心是否可能支持这种注入吗?

.net核心文档似乎说它们通过注入IServiceProvider来支持服务定位器模式,然后使用此注入的提供程序解析服务。问题在于,这仍然是依赖项注入,并非在所有情况下都有效。

我尝试过的另一个“ hack”是保存创建的ServiceProvider(在Configure()中或在ConfigureServices()中构建)。问题是我将根提供程序从根本上保存到了全局变量中。因为这是根提供者,所以所有作用域服务都升级为单例,因此这不是一个可行的解决方案。

这是.net框架中的工作方式:

var myService =
    (T)GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(T)));

0 个答案:

没有答案