首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CompositionBatch和catalogs有什么不同?

CompositionBatch和catalogs有什么不同?
EN

Stack Overflow用户
提问于 2011-04-04 11:12:34
回答 1查看 2.4K关注 0票数 4

我正试图把我的大脑围绕着MEF,而我正在努力解决的一件事是CompositionBatch

CompositionBatch似乎是一种向MEF系统添加或删除导出的方法,但显然它是can't remove something that was added via a catalog的,所以它的用途有限。出于某些原因,它还在容器级别操作,而不是在目录级别与在MEF中注册类型的其他所有内容一起操作。

据我所知,CompositionBatch只是一种多余的方式,用来做你已经可以用catalogs做的事情。如果我想在应用程序启动后注册两个新类型,我不需要CompositionBatch;我也可以将一个AggregateCatalog传递给我的容器,然后当我准备好时,从我想要注册的两个新类型创建一个TypeCatalog,将它添加到AggregateCatalog中,一切都会正常工作。然而,还有CompositionBatch,它通过向容器添加方法来解决这个目录问题。

我遗漏了什么?CompositionBatch为什么会存在?实际上,它会做任何你不能用已经存在的东西做的事情吗?为什么我们需要一种在容器级别做同样事情的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-05 01:44:10

如果某个类型在目录中,MEF将在需要时创建该类型的对象。CompositionBatch允许您将对象添加到您自己创建的组合中。我们通常建议使用catalogs,但在某些情况下,您需要自己创建对象,或者它是由其他组件(例如XAML解析器)创建的,您需要将其放入容器中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5534240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档