首页 > 解决方案 > .Net Core - 如何使用依赖注入创建类的多个实例

问题描述

我有一个特定的场景,我需要创建一个具有依赖注入的类的多个实例。

foreach (var setting in settings)
        {
            var client = new ServiceClient();
            dict.Add(somekey, client);
        }

ServiceClient 类构造函数已经为其他依赖类实现了 DI。如何实例化 ServiceClient 类?

标签: .netdependency-injection.net-core

解决方案


您可以注入IServiceProvider以使用GetService方法“通过代码”获取服务。

每次向服务提供者请求服务时,要注入的服务应该是临时的,以便获得一个新的实例。如果要注入的服务具有作用域生命周期,则必须围绕代码创建一个新作用域才能获得新服务。

var service = serviceProvider.GetService<IService>();

根据您的用例考虑使用工厂方法。


推荐阅读