如何避免MEF中的多余导入?

时间:2010-08-15 19:32:01

标签: c# .net mef redundancy

这是问题...如果我使用,说MEF中的目录编目并有some.dll和some.dll的副本,我将获得双倍的导出,即使他们定义相同的类型,是否有解决这个问题的方法?

编辑:问题不在于这个特定的问题,这只是一个真实问题的抽象例子,例如,如果我有一个“扩展”文件夹,以及一种手动导入的方法...它只是一些东西这很好处理。

2 个答案:

答案 0 :(得分:4)

您可以使用FilteredCatalog(不是核心MEF发布版的一部分)执行此操作。请参阅此处的示例:http://mef.codeplex.com/wikipage?title=Filtering%20Catalogs

您可以使用Where,而不是通过Distinct从内部目录中进行选择。要比较ComposablePartDefinition的相等性,最简单的选择是使用ToString,但转换为ReflectionComposablePartDefinition也是一种选择。

HTH, 尼克

答案 1 :(得分:0)

  

有办法解决这个问题吗?

有两种选择:

  • 删除的冗余副本 装配
  • 不要使用目录编目。您 可以为每个添加组件目录 个人集会,然后离开 不需要的组件。