1

ここに問題があります。静的変数に大きく依存し、シングルトン アプリケーション (一度にプロセスのインスタンスが 1 つだけ) である winform アプリケーションがあります。

ここで、たとえば 6 つの winform アプリケーションを作成し、プライマリ ウィンドウを切り替えるラッピング アプリケーションを作成する必要があります。このようにする理由は、これらのアプリケーションには、接続先のデータベースに応じて更新する必要がある静的参照が多数あるためです。現在、ユーザーは複数のデータベースに接続する必要があり、コードを再設計して静的な問題を取り除くことはできません。

私の質問はこれです。1 つのプロセスで新しいアプリ ドメインを作成できることはわかっていますが、それらのアプリ ドメインのそれぞれが新しい静的参照のセットを取得しますか? それとも、実際に別のプロセスを用意する必要がありますか? もしそうなら、古いアプリケーションの 6 つのインスタンスを作成し、それぞれにデータを通信する新しいアプリケーションを構築するにはどうすればよいでしょうか (非表示/表示、このオブジェクトのロード、このデータベースのクエリなど)。これは使い捨てのプロジェクトになってしまうので、単純なものです。

ありがとう!

4

1 に答える 1

1

各アプリ ドメインには、読み込まれたアセンブリ (ドメイン間で共有されるドメイン中立アセンブリを除く) と型の独自のセットがあります。アプリ ドメインの各型には、静的変数の独自のインスタンスがあります (ドメイン中立アセンブリの場合、CLR はこれを特別な方法で提供します)。

于 2012-06-01T18:19:16.703 に答える