Caliburn Micro适用哪种引导程序?

3
我想听听您的意见,哪种引导程序(MEF、Unity、Autofac等)在您看来最适合Caliburn Micro?为什么?
如果您有喜欢的引导程序,可以发布该引导程序的代码以及如何在VM类或外部程序集中使用它。我会很高兴的。
我是这个领域的新手,如果我的问题有点蠢,请原谅。
感谢每一个意见、建议和代码示例。
2个回答

6

没有最好的解决方案,这将取决于您的应用程序设计。与Unity、Autofac等不同,MEF不是通用的IoC容器,它的重点在于类型的可发现性和它们的组合。

它适用于复合应用程序,其中扩展可以在运行时被发现并集成到应用程序的Shell中。其优势在于支持程序集可以被放入指定的文件夹中,并且可以在不进行任何其他工作的情况下被拾取。

Unity等更具有通用性,并提供超越MEF的功能,在对象组合之外,还专注于DI的其他维度,如生命周期管理和拦截。

没有什么可以阻止您同时使用MEF来支持扩展/插件以及更通用的IoC容器,例如Unity/Autofac/Castle Windsor,为您的应用程序提供一般的DI基础结构。

如果您对DI还不熟悉,请暂时使用MEF,因为它将提供您所需的所有对象组合功能,并且Rob已经提供了一个使用MEF的启动引导程序的实现。


0

或者您可能希望使用MEF作为插件架构,但对于依赖注入,请使用适当的IoC框架,例如AutoFac。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接