0

異なる dll に 3 レベルの抽象化があると仮定して、アプリケーションを構成します

  • 原生的
  • 基本実装プリミティブ
  • Foo は Basic を実装します

そして、私のアプリケーションは Foo (Assembly.Load、Activator...) を動的にロードします。デフォルトでは、Basic クラスの実装を見つけることができないため、CurrentDomain_AssemblyResolve イベントと呼ばれ、Basic クラスをロードするための正しいパスを入力できます。

私のビジネスの運営に基づいて、私のアプリケーションは 100% の時間アクティブでなければなりません。しかし、私はFooの実装を変更する可能性があります(バグ修正または機能の変更によるものです)したがって、私がしなければならないことは、dll(構成)のパスを変更することであり、次にこの関数が「別の」呼び出されるときにFooが使用されます.

非常にうまく機能しましたが、別の Basic クラスを再度ロードする必要がある場合 (この場合は Basic と Foo を再コンパイルします)、アプリケーションを再起動する必要があります。新しいFooをインスタンス化するには?

アセンブリが排出されないことはわかっていますが (古いバージョン)、これは問題ではありません。

4

0 に答える 0