異なる dll に 3 レベルの抽象化があると仮定して、アプリケーションを構成します
- 原生的
- 基本実装プリミティブ
- Foo は Basic を実装します
そして、私のアプリケーションは Foo (Assembly.Load、Activator...) を動的にロードします。デフォルトでは、Basic クラスの実装を見つけることができないため、CurrentDomain_AssemblyResolve イベントと呼ばれ、Basic クラスをロードするための正しいパスを入力できます。
私のビジネスの運営に基づいて、私のアプリケーションは 100% の時間アクティブでなければなりません。しかし、私はFooの実装を変更する可能性があります(バグ修正または機能の変更によるものです)したがって、私がしなければならないことは、dll(構成)のパスを変更することであり、次にこの関数が「別の」呼び出されるときにFooが使用されます.
非常にうまく機能しましたが、別の Basic クラスを再度ロードする必要がある場合 (この場合は Basic と Foo を再コンパイルします)、アプリケーションを再起動する必要があります。新しいFooをインスタンス化するには?
アセンブリが排出されないことはわかっていますが (古いバージョン)、これは問題ではありません。