1

ninject xml 拡張機能を使用して、同じ実行可能ファイル (プラグイン) に対して異なる DAL を構成しています。私の考えは、ninject xml ファイルを含むメイン アプリケーションのサブフォルダーにそれらすべて (DLL) を配置することでした。

問題は、ninject が xml で参照されているバインディングを見つけられないことです。dllをメインアプリケーション(.exe)の同じフォルダーにコピーした場合にのみ機能します。

カーネルをロードする前にdllをロードしようとしました

Assembly assembly = Assembly.LoadFrom(dll);
AppDomain.CurrentDomain.Load(assembly.GetName());
Kernel.Load(xmlFile);

しかし、まだ機能しません。(エラー: 「'to' 属性で定義されたタイプ 'MyType' を解決できませんでした」 )

ninject-xml ファイルで具体的なフォルダーを参照する方法、または ninject-xml 拡張機能を使用して解決できる別のフォルダーから型をロードする方法を知っている人はいますか?

4

2 に答える 2

0

構成ファイルの「プローブ」要素を使用して、これを解決します。これには、解決スコープのフォルダーが含まれます。

<runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="Plugins"/>
      </assemblyBinding>
 </runtime>

詳細はこちら

ありがとうございます。

于 2013-01-14T11:08:34.910 に答える
0

規約拡張機能は、存在する DLL に基づいてバインディングをロードすることで問題を解決するでしょうか? そうでない場合は、問題をもう少し詳しく説明していただけますか?

于 2012-11-15T15:40:02.823 に答える