我有關於MEF的問題。從本質上說: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,而我的其他兩個程序則不會。當我嘗試執行上面,一個CompositionException在main()的調用prop.DoStuff()當該消息稱類的3rdParty找不到拋出。
換句話說,MEF部分被注入,但它所需要的DLL不被注入/複製。
有誰知道這個問題的解決方案或解決方法?
執行過程中,您的3rdParty程序集與'my.parts'程序集位於同一個目錄中嗎? – twoflower 2012-08-06 07:45:22
你已經擊中了現場,事實並非如此。在那裏添加它解決了異常。謝謝。 – 2012-08-06 08:32:56
沒問題,很高興我可以幫助:)我添加了一個正確的答案。 – twoflower 2012-08-06 08:46:03