内置类型的依赖注入

时间:2011-08-26 10:07:59

标签: c# asp.net-mvc asp.net-mvc-3 dependency-injection

以前可能会问过这个问题,但在搜索SO时我没有找到任何东西。

使用依赖注入时,您通常如何处理列表,网络凭据等类型。

在我的一个服务构造函数中,我有:

_itemsCheckedForRelations = new List<Guid>();
_reportManagementService.Credentials = new NetworkCredential([...]);

您是否会将这些重构为自定义工厂类/接口并注入或执行此操作?

我不太确定如何处理这些类型的对象创建。

2 个答案:

答案 0 :(得分:3)

如果您只需要阅读列表,就可以轻松地将List<Guid>替换为IList<Guid>ICollection<Guid> - 甚至IEnumerable<Guid>

对于尚未实现接口或具有虚拟成员的其他BCL类型,您需要自己提取接口。但是,在执行此操作时,您应该注意 Leaky Abstractions

答案 1 :(得分:0)

你可以两条路线;首先,正如您所说,为它们创建一个包装器并注入它。但是,这取决于您希望如何填充正在包装的对象的状态。这个案子不是我个人所做的。查看关于动态parmaters的Krzysztof Kozmic博客:

Castle Windsor dynamic parameters

希望这有帮助