我有关于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 程序集引用了第三方.dll,而我的另外两个没有。当我尝试执行上述操作时,在调用 prop.DoStuff()时会在 Main()中抛出 CompositionException ,并显示该类消息无法找到 3rdParty 。
换句话说,注入MEF部分,但不需要注入/复制它所需的DLL。
有没有人知道这个问题的解决方案或解决方法?
答案 0 :(得分:1)
在执行期间,3rdParty
程序集文件显然不与my.parts
程序集(或加载程序探测的任何其他位置)位于同一目录中。