2016-07-13 10 views
0

ランタイム異なるアセンブリからロードアセンブリをロードします。特定のインターフェイスを含むすべての型をインスタンス化します。typeof(I).IsAssignableFrom(xy)アセンブリLoadFrom同一アセンブリが動作しない

ただし、インターフェイスを含むアセンブリが間違って読み込まれた場合(他の人がそのオブジェクトをフォルダの1つに配置したため)、型はロードされません。私はインターフェイスの種類との不一致のために仮定します。 .dllsが同一であるため、なぜ私は本当に理解できません。

また、この問題を解決するための良い方法は

追加情報(私はAssembly.LoadFromせずに厳密な名前を取得can't)があります: 例として: PROGRAM.EXEは、DLLの依存関係を持っていinterfacedefinition.dll

このプログラムのサブフォルダには、 "loading.dll"と呼ばれるDLLがあります。

interfacedefinition.dllが両方に存在する場合、PROGRAM.EXEとloading.dllを含むサブフォルダを含むメインフォルダ私はあなたが、その後のためList<string>を保つことによって含むアセンブリを再読み込み防ぐ必要があるような問題点

+2

LoadFrom()の代わりにLoad()を使用するか、インターフェイスアセンブリをGACに配置する必要があります。 –

答えて

0

を取得ロードするべきではないアセンブリ名のリストを保持する例。ロードしようとしているアセンブリがListに含まれているかどうかを確認してください。

+0

インターフェイスはロードされたアセンブリからのものですが、このアセンブリは、他のアセンブリをロードするディレクトリにも含まれていればリロードされます。 – Markus

+0

条件付きの応答を気にしたくありませんでした。 @Markusが答えた後の応答を編集しました。 –

関連する問題