内置类型的依赖注入
本文关键字:注入 依赖 置类型 内置 | 更新日期: 2023-09-27 18:06:38
这个问题以前可能已经问过了,但是我在搜索SO时没有找到任何东西。
使用依赖注入时,通常如何处理列表、网络凭据等类型
目前,在我的一个服务构造函数中,我有:
_itemsCheckedForRelations = new List<Guid>();
_reportManagementService.Credentials = new NetworkCredential([...]);
你会把这些重构成一个自定义的工厂类/接口并注入它们,还是像我在这里做的那样?
我一直不太确定如何处理这些类型的对象创建。
您可以轻松地将List<Guid>
替换为IList<Guid>
或ICollection<Guid>
-甚至IEnumerable<Guid>
,如果您只需要阅读列表。
对于其他没有实现接口或没有虚成员的BCL类型,您需要自己提取接口。但是,当这样做时,您应该注意渗漏抽象。
你可以有两个路由;首先,如您所说,为它们创建一个包装器并注入它。然而,这取决于您希望如何填充正在包装的对象的状态。这个案子不是我个人会做的。查看Krzysztof Kozmic关于动态参数的博客:
温莎城堡动态参数
希望能有所帮助