24

リフレクションを使用して、同じアセンブリの 2 つの異なるバージョンを読み込む必要があります。同じプロセスで 2 つの異なる AppDomains に 2 つのバージョンをロードできますか?

アプリの古いバージョンから新しいバージョンにデータを移行する必要があります。これが可能かどうか、または 2 つの別々のプロセスを使用する必要があるかどうかをお知らせください。

4

2 に答える 2

14

設計時にそれを行っている場合 (そうではないことを示しています)、これは次のように役立ちます。

http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx

リフレクションを介して動的に実行している場合 (ここのケースのように見えます)、これが役立つ場合があります。

https://www.infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html

于 2008-09-12T00:49:24.243 に答える
5

更新:調査結果を回答として投稿すると思いました。リフレクションは、開発作業や実行時エラーの追跡などの点で複雑すぎることがわかりました。昔、同じような状況に直面したときに、2 つの異なるプロセスを使用して別のアプローチをとったことを覚えています (ブランドンさん、ありがとう)。

これが計画です。開発とトラブルシューティングの点で、エレガントではありませんが簡単です。これは 1 回限りの作業なので、機能させるだけです。

新しいバージョンのアプリケーションを持つリモーティング プロセス (これをサーバーと呼びます) をホストします。リモート クライアントには、古いバージョンの参照があります。

リモーティング クライアントは、オブジェクトをインスタンス化し、移行に必要なデータをロードします。古いオブジェクトを共通のシリアライズ可能なオブジェクトに変換し、パラメーターとしてサーバーに渡します。

Remoting Server は共通データを使用して、新しいオブジェクトをインスタンス化してロードします。新しい型で関数を呼び出して、データを永続化します。

于 2008-09-12T13:33:38.383 に答える