Prism的IContainer和IUnityContainer有什么区别?

时间:2009-07-21 14:42:08

标签: wpf unity-container prism

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

IContainer container

在我注入的其他模块中

IUnityContainer container

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

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

1 个答案:

答案 0 :(得分:2)

这些实际上是两个不同的目的。

IUnityContainer是一个依赖注入容器,它支持在依赖注入/服务位置场景中需要执行的所有操作,例如BuildUp,Resolve,Register等。您可以阅读有关Unity的更多信息(实际上是这里是企业库的一部分,而CAG使用 来到这里:Unity on Codeplex

IContainer用于为IComponents对象创建通用容器。它被许多组件使用,并且位于System.ComponentModel中的.NET Framework中。它与Unity或CAG无直接关系。虽然你可以间接地在WPF中使用IComponents,但我认为这是更具Windows特定性和更少WPF的东西。 IContainer

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