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