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.main和my.parts引用了 my.interfaces程序集。除此之外,my.parts程序集引用了第 3 方 .dll,而我的其他两个没有。当我尝试执行上述操作时,在调用prop.DoStuff( ) 时会在 Main()中引发CompositionException ,并显示找不到类3rdParty的消息。

换句话说,MEF 部分被注入,但它需要的 dll 没有被注入/复制。

有谁知道这个问题的解决方案或解决方法?

4

1 回答 1

1

在执行期间,3rdParty程序集文件显然与程序集不在同一目录中my.parts(或加载程序探测的任何其他位置)。

于 2012-08-06T08:45:35.183 回答