アプリケーション ドメインを使用したプログラミング
更新 : 2007 年 11 月
通常、アプリケーション ドメインは、ランタイム ホストによってプログラムで作成および操作されます。しかし、アプリケーション プログラムでもアプリケーション ドメインを操作する必要が生じる場合があります。たとえば、アプリケーション プログラムはアプリケーション コンポーネントをドメインに読み込むことができるため、アプリケーション全体を停止せずにドメイン (およびコンポーネント) をアンロードできます。
AppDomain クラスは、アプリケーション ドメインに対するプログラム インターフェイスです。このクラスには、ドメインを作成およびアンロードするメソッド、型のインスタンスをドメイン内に作成するメソッド、およびアプリケーション ドメインのアンロードなどの各種通知に登録するメソッドが含まれています。一般的に使用される AppDomain メソッドを次の表に示します。
AppDomain メソッド |
説明 |
---|---|
新しいアプリケーション ドメインを作成します。AppDomainSetup オブジェクトを指定するこのメソッドのオーバーロードを使用することをお勧めします。これは、アプリケーション ベース (アプリケーションのルート ディレクトリ)、ドメインの構成ファイルの場所、ドメインにアセンブリを読み込むときに共通言語ランタイムが使用する検索パスなど、新しいドメインのプロパティを設定する場合に望ましい方法です。 |
|
アプリケーション ドメインでアセンブリを実行します。これはインスタンス メソッドであるため、参照先の別のアプリケーション ドメインでコードを実行する場合に使用できます。 |
|
指定した型のインスタンスをアプリケーション ドメイン内に作成し、プロキシを返します。このメソッドを使用することで、作成された型を含むアセンブリが呼び出し元のアセンブリに読み込まれることを回避できます。 |
|
ドメインを正常にシャットダウンします。アプリケーション ドメインは、ドメイン内で実行されているすべてのスレッドが停止するか、またはドメイン内に存在しなくなるまで、アンロードされません。 |
メモ : |
---|
共通言語ランタイムはグローバル メソッドのシリアル化をサポートしないため、デリゲートを使用して他のアプリケーション ドメインでグローバル メソッドを実行できません。 |
共通言語ランタイムの仕様、「Hosting Interfaces」で説明されているアンマネージ インターフェイスも、アプリケーション ドメインへのアクセスを提供します。ランタイム ホストは、アンマネージ コードのインターフェイスを使用して、プロセス内にアプリケーション ドメインを作成し、そのドメインにアクセスできます。