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 を参照しますが、他の 2 つにはありません。上記を実行しようとすると、prop.DoStuff()を呼び出すと、 Main()でCompositionExceptionがスローされ、クラス3rdPartyが見つからないというメッセージが表示されます。
つまり、MEF 部分は注入されますが、必要な dll は注入/コピーされません。
この問題の解決策または回避策を知っている人はいますか?