我正试图将我的大脑包裹在MEF周围,而我正在努力解决的一件事就是CompositionBatch.
CompositionBatch似乎是一种添加或删除MEF系统导出的方法,但显然它无法删除通过目录添加的内容,因此它的实用性有限.由于某种原因,它也在容器级别运行,而不是在目录级别运行,其他所有内容都在MEF中注册类型.
据我所知,CompositionBatch只是一种多余的方式来做你已经可以用目录做的事情.如果我想在应用程序启动后注册两个新类型,我不需要CompositionBatch; 我也可以将AggregateCatalog传递给我的容器,然后在我准备好之后,从我想要注册的两个新类型创建一个TypeCatalog,将它添加到AggregateCatalog,一切都会正常工作.而且还有CompositionBatch,它通过向容器添加方法来解决此目录问题.
我错过了什么?为什么CompositionBatch存在?事实上,它是否做了你不能做的事情?为什么我们需要一种方法在容器级别做同样的事情?
如果类型在目录中,MEF将在需要时创建该类型的对象.CompositionBatch允许您将对象添加到您自己创建的合成中.我们建议一般坚持目录,但有些情况下您需要自己创建一个对象,或者它是由其他组件(例如XAML解析器)创建的,您需要将它放在容器中.
| 归档时间: |
|
| 查看次数: |
2292 次 |
| 最近记录: |