内置类型的依赖注入

本文关键字:注入 依赖 置类型 内置 | 更新日期: 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关于动态参数的博客:

温莎城堡动态参数

希望能有所帮助