.net - .Net Core - 如何使用依赖注入创建类的多个实例
问题描述
我有一个特定的场景,我需要创建一个具有依赖注入的类的多个实例。
foreach (var setting in settings)
{
var client = new ServiceClient();
dict.Add(somekey, client);
}
ServiceClient 类构造函数已经为其他依赖类实现了 DI。如何实例化 ServiceClient 类?
解决方案
您可以注入IServiceProvider以使用GetService方法“通过代码”获取服务。
每次向服务提供者请求服务时,要注入的服务应该是临时的,以便获得一个新的实例。如果要注入的服务具有作用域生命周期,则必须围绕代码创建一个新作用域才能获得新服务。
var service = serviceProvider.GetService<IService>();
根据您的用例考虑使用工厂方法。
推荐阅读
- octobercms - 在某个时间段内发送电子邮件(每月)[ octobercms ]
- html - html5 - 无法将 `\n` 格式化为渲染字符串中的新行
- android - 我正在我的应用程序中自定义 ExoPlayer 我想要像 MX Player 这样的全屏模式
- c++ - 我们是否需要对多线程 x32 系统使用锁来读取或写入 uint32_t 变量
- qt - 当一个项目从不同文件中的不同项目访问相同的值时,属性绑定在 Qml 中丢失
- elasticsearch - 弹性搜索中的设置是什么
- python - 查找“TRUE”布尔值的最大循环
- python - 在tasks.py Celery-Django中获取当前用户
- laravel - Laravel:尝试在两个域之间建立 API 连接
- ios - 跨视图控制器保存信息