【发布时间】:2016-08-14 23:42:22
【问题描述】:
我的解决方案中有 3 个项目:
1- ExporterLib(类库)
2- ImporterApp(WPF 应用程序)
3- SharedLib(类库)
前两个项目引用“SharedLib”,其中包含一个名为 ISharedClass 的接口。
在“ImporterApp”中,我有一个名为 ClassA 的类:
public class ClassA
{
[Import] private ISharedClass part;
}
在“ExporterLib”中,我有一个名为 SharedClassExport 的类:
[Export(ISharedClass)]
public class SharedClassExport : ISharedClass
{
//....
}
在 ImporterApp 中,我使用 DirectoryCatalog 引用 ExporterLib.dll 文件和容器。但是,当我尝试使用容器组合 ClassA 实例的各个部分时,我收到一个异常消息:
1) 未找到与约束匹配的导出: ContractName SharedLib.ISharedClass RequiredTypeIdentity SharedLib.ISharedClass
当我使用调试器查看目录中的部件时,我看到了正确的 SharedClassExport 部件,但它没有引用 ISharedClass!
我该怎么办?
附: : 我想使用 MEF,我不想将这些项目中的任何一个合并在一起。
提前致谢。
总结:
//指定合约类型可能很重要,如果 您想导出除基本类型以外的类型, 比如一个接口。
【问题讨论】: