我有一个特定的场景,我需要创建具有依赖项注入的类的多个实例。
foreach (var setting in settings)
{
var client = new ServiceClient();
dict.Add(somekey, client);
}
ServiceClient类构造函数已为其他依赖类实现了DI。我如何实例化ServiceClient类?
答案 0 :(得分:0)
您可以使用 GetService 方法“通过代码”注入 IServiceProvider 以获取服务。
每次您向服务提供商请求服务时,注入的服务应该是临时的,以获取新的实例。如果要注入的服务具有作用域的生存期,则必须围绕代码创建一个新的作用域以获取新的服务。
var service = serviceProvider.GetService<IService>();
根据您的用例考虑使用工厂方法。