如何确定我们应该选择哪一个使用MEF与任何IoC?

Jee*_*att 4 .net c# wpf mef ioc-container

在哪种情况下我们应该使用什么?在什么情况下我们会选择一起使用?

mar*_*c_s 12

棘手的问题 - 因为这两个确实在某种程度上重叠.

我会这样说:

  • 使用任何有用的IoC,如果你主要关心依赖注入,以便解耦你的组件,例如能够注入模拟而不是(用于测试)

  • 使用MEF特别是如果你更可扩展,例如能够"从导出某个接口的目录加载所有程序集",并且如果你需要可扩展并为第三方开放(如Visual Studio:提供公共) API,以便其他人可以为您的应用编写扩展程序).这是MEF真正闪耀的地方

对于MEF和Unity,还有MEF和Unity Integration Layer将两种工具的优势结合在一起.

我还建议你查看Ayende的优秀博客文章,了解MEF与IoC的区别.