0

我有一个Prism项目,其中包含从各种来源获得的代码,一切运行良好,但我注意到在我注入的某些模块中

IContainer container

在我注入的其他模块中

IUnityContainer container

IContainer 似乎只有组件、添加和删除,而 IUnityContainer 有几十个方法。

我经常将 IContainer 更改为 IUnityContainer 以便我可以使用后者的解析方法。这两者有什么区别,我为什么要使用 IContainer?

4

1 回答 1

2

这实际上是具有不同目的的两种不同的事物。

IUnityContainer 是一个依赖注入容器,它支持您在依赖注入/服务定位场景中需要做的所有事情,例如 BuildUp、Resolve、Register 等。您可以阅读有关 Unity 的更多信息(它实际上是 Enterprise 的一部分)库并由 CAG使用),请访问此处: Unity on Codeplex

IContainer 用于为 IComponent 对象创建通用容器。它被许多组件使用,并且位于 System.ComponentModel 的 .NET Framework 中。它与 Unity 或 CAG 没有任何直接关系。我认为这是更特定于 Windows 窗体和更少 WPF 的东西,尽管您可以在 WPF 中间接使用 IComponents。容器

在进行任何类型的依赖注入时,您应该使用 IUnityContainer,而不是 IContainer。

于 2009-07-21T18:49:25.233 回答