1

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.mainmy.partsの両方がmy.interfacesアセンブリを参照します。それに加えて、my.partsアセンブリはサード パーティの .dll を参照しますが、他の 2 つにはありません。上記を実行しようとすると、prop.DoStuff()を呼び出すと、 Main()でCompositionExceptionがスローされ、クラス3rdPartyが見つからないというメッセージが表示されます。

つまり、MEF 部分は注入されますが、必要な dll は注入/コピーされません。

この問題の解決策または回避策を知っている人はいますか?

4

1 に答える 1

1

実行中、3rdPartyアセンブリ ファイルがアセンブリと同じディレクトリmy.parts(またはローダーがプローブする他の場所) に配置されていないようです。

于 2012-08-06T08:45:35.183 に答える