这就是问题所在...如果我使用,比如说 MEF 中的目录目录并拥有 some.dll 和 some.dll 的副本,我将获得双倍的导出,即使它们定义相同的类型,有没有办法解决这?
编辑:问题不在于这个特定问题,这只是一个实际问题的抽象示例,例如,如果我有一个“扩展”文件夹,以及一种手动导入的方法......很好处理。
这就是问题所在...如果我使用,比如说 MEF 中的目录目录并拥有 some.dll 和 some.dll 的副本,我将获得双倍的导出,即使它们定义相同的类型,有没有办法解决这?
编辑:问题不在于这个特定问题,这只是一个实际问题的抽象示例,例如,如果我有一个“扩展”文件夹,以及一种手动导入的方法......很好处理。
您可以使用FilteredCatalog
(不是核心 MEF 发行版的一部分)执行此操作。请参见此处的示例:http: //mef.codeplex.com/wikipage?title=Filtering% 20Catalogs
而不是通过Where
您可以使用从内部目录中进行选择Distinct
。要比较ComposablePartDefinition
s 是否相等,最简单的选项是使用ToString
,但转换ReflectionComposablePartDefinition
为也是一种选择。
HTH,尼克
有没有办法解决这个问题?
想到两个选择: