1

这就是问题所在...如果我使用,比如说 MEF 中的目录目录并拥有 some.dll 和 some.dll 的副本,我将获得双倍的导出,即使它们定义相同的类型,有没有办法解决这?

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

4

2 回答 2

4

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

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

HTH,尼克

于 2010-08-16T02:48:10.763 回答
0

有没有办法解决这个问题?

想到两个选择:

  • 删除程序集的冗余副本
  • 不要使用目录目录。您可以为每个单独的程序集添加程序集目录,而忽略不需要的程序集。
于 2010-08-15T21:38:57.700 回答