私は、別の人が開発した分離したdllで特定の型を使用するアプリケーションを持っています。今までアセンブリの動的読み込み時に名前空間を変更する
namespace SeparatedAssembly
{
public class InnerType
{
}
}
、私は、Visual StudioでこのDLLのバージョンを参照して、私は私のアプリでInnerTypeを使用していました: は、それがInnerTypeであると言います。ただし、InnerType内のコードが変更される可能性があるため、アセンブリは実行時に "AssemblyResolve"イベントでロードされます。
しかし、このクラスの名前空間が変更されている今、:
namespace SeparatedAssembly.Inner
{
public class InnerType
{
}
}
をだから私のアプリはもうこのタイプを見つけることができないので、私は例外TypeLoadExceptionを持っています。この新しいバージョンを参照するだけで、このDLLの古いバージョンと互換性があるため、私が使用する名前空間を変更することはできません。
私の質問は、AssemblyResolveイベントでアセンブリ内で探す名前空間を指定することも可能ですか? この例外をキャッチして別の名前空間で試してみる方法があれば、それもOKです。
ありがとうございました。
答えが否定であっても、役立ちます。ありがとう。 – Jonyjack
@Jonyjack私はあなたの問題について少し考えましたが、私は簡単な解決法、あるいはそう簡単ではない解決法を見ることができません。シムクラス(古い.dll用と新しい.dll用)を作成し、これらのシムクラスを共通のインターフェイスから派生させます(コードでこの共通インターフェイスのみを使用します)。それは非常に困難になる可能性がdllのオブジェクトを行う。 – xanatos