気になった事を自由に書いてます。
      
アプリケーションドメインの罠。
C言語で遊んでたときは1アプリケーション=1プロセスが当たり前に思っていました。
時代は代わり.NET Frameworkでは1つのプロセスのなかに複数のアプリケーションをロードできるようになりました。
ロードした1つ1つのアプリケーションは「アプリケーションドメイン」とよばれる単位で管理されます。

C#で作成したアプリケーションを起動すると「アプリケーションドメイン」が1つ生成され、
この中にロードしたアプリケーションを格納します。その後、別アプリケーションをロードするときは
既存ドメインに追加したり、新規作成と選ぶことができます。

同じアプリケーションドメインに複数のアプリケーションを含む場合、メモリの共有が可能となります。
共有したくない場合は別々で管理してやればよいです。

で、別々で管理したときの話です。
ドメインを2つ用意し、アプリケーションAのForm1をそれぞれ表示させました。
まったく同じ画面が表示することを期待したのですが、何か違うんです。
Form1は画面上にボタンが貼り付けています。
さぁ間違いさがし。


右の画面は通常の呼び出し、左の画像は新規アプリケーションドメインから呼び出してます。
なぜボタンの文言の座標がずれるのかまったく検討がつきません。
ボタンだけではなく、ラベルも同様でした。

この問題が無ければどんなに嬉しかったことか・・・。
      





Copyright (C) 2011 - 2017 猫の気ままなC#日記