bit*_*onk 8 .net c# mef ioc-container
如果我错了,请纠正我,但MEF只适用于管理一组可以自动发现和自动连接的未知事物(插件).对于未来的项目,我们需要一个真正的IoC容器来明确地配置应用程序的已知部分(MEF至极不在好),但另外我们还需要支持插件自动发现(最好没有POCO的属性,如果可能的话).IoC容器可以轻松地/默认支持吗?如果是这样,你可以快速提示如何在Unity和StructureMap中完成这项工作吗?这是我们目前支持的两个.我们真的希望避免依赖IoC容器和 MEF.
我认为重要的是要注意虽然MEF不是传统意义上的IoC容器,但它正在执行控制反转.事实上,我不同意这一点,并说MEF与其他任何容器都是一个IoC容器.说Unity和MEF之间的真正区别在于MEF默认支持组合而不是显式类型解析,并且在配置上键入发现.但是,正如我们在MEFContrib项目中看到的那样,完全可能让MEF更像传统的IoC容器.MEF为模块化组件行为提供了很好的基线,采用了大量的硬嫁接,以及它的设计方式,它允许您添加更多功能.比方说,比如你有你的现有代码库周围其他IoC容器或服务定位器内置,你可以连线了一个ExportProvider这样做的,心里很不舒服,你可以连线了一个供应商的服务定位,如公共服务定位器项目,然后插上兼容的CSL实现,并使用从您的其他IoC容器派生的类型组成MEF组件.MEF还为您执行依赖注入.
如果您想避免依赖于特定的IoC容器或MEF本身,您可以使用类似于公共服务定位器的东西,它是对常见容器操作的抽象.这样,如果你需要/想要改变所有东西的连接方式,那就相对轻松了.大多数IoC容器和MEF都有兼容的CSL实现.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
1938 次 |
| 最近记录: |