我想听听您的意见以及为什么选择适合(最好的)自学选择器(MEF,Unity,Autofac等)?
如果你有一些喜欢的,你可以发布这个引导程序的代码,以及如何在VM类或外部程序集上使用它。我会很高兴的。
我是这个领域的新手;抱歉,如果我的问题很愚蠢。
感谢所有意见,建议和代码示例。
答案 0 :(得分:6)
没有最佳解决方案,这取决于您的应用程序设计。 MEF不是通用的IoC容器(与Unity,Autofac等不同),它的重点是类型及其组成的可发现性。
它适用于可在运行时发现扩展并集成到应用程序shell中的复合应用程序。它的优势在于支撑组件可以放入指定的文件夹中,无需任何额外工作即可拾取。
Unity等更通用,提供超出MEF的功能,除了对象组合外,还专注于DI的其他维度,如终身管理和拦截。
没有什么可以阻止你使用MEF支持扩展/插件,以及更通用的IoC容器,如Unity / Autofac / Castle Windsor,用于您的应用程序通用DI基础设施。
如果您是DI的新手,那么可能暂时坚持使用MEF,因为它将提供您需要的所有对象组合功能,Rob已经提供了使用MEF的Bootstrapper的实现。
答案 1 :(得分:0)
或者您可能希望将MEF用于加载项体系结构,但使用适当的IoC框架(如AutoFac)进行依赖项注入。