我有一个关于 MEF 的问题。在本质上:
assembly my.main {
class Main {
<Import>
Lazy<IMyType> prop;
public static void Main(...) {
ComposeParts(this);
prop.DoStuff();
}
}
}
assembly my.interfaces {
interface IMyType {
void DoStuff();
}
}
assembly my.parts {
using 3rdParty;
<Export>
class MyType : IMyType {
void DoStuff() {
3rdParty.DoStuff();
}
}
}
my.main和my.parts都引用了 my.interfaces程序集。除此之外,my.parts程序集引用了第 3 方 .dll,而我的其他两个没有。当我尝试执行上述操作时,在调用prop.DoStuff( ) 时会在 Main()中引发CompositionException ,并显示找不到类3rdParty的消息。
换句话说,MEF 部分被注入,但它需要的 dll 没有被注入/复制。
有谁知道这个问题的解决方案或解决方法?