如何使用ServiceLocator解析服务类型的服务?

问题描述 投票:0回答:1

我正在使用这种ServiceProvider.GetService<T>()解决服务。但是后来我发现,在调用方法ServiceProvider.GetService<T>()中说在根提供程序中找不到服务时,解决作用域服务正在获取运行时错误。然后我发现解决了这样创建范围的问题,

using (var scope = _serviceProvider.CreateScope())
{
   return scope.ServiceProvider.GetService<T>();
}

我想创建一个通用函数。但是问题是我不知道何时使用服务提供者范围,何时不使用服务提供者,因为我不知道服务寿命类型(Scoped / Singleton)。我该如何创建可以在不知道生命周期或解决生命周期问题的情况下解决服务的通用功能?

asp.net-core .net-core dependency-injection inversion-of-control ioc-container
1个回答
0
投票

除非存在原因,否则您不应该这样做除非有原因

© www.soinside.com 2019 - 2024. All rights reserved.