アプリケーション ドメイン (C# および Visual Basic)

アプリケーション ドメインは、実行中のアプリケーションを分離するための柔軟で安全な方法として利用できます。

通常、アプリケーション ドメインは、ランタイム ホストによって作成および操作されます。 アプリケーションを実行しているときには、時折、実行を中断せずにコンポーネントをアンロードするなど、アプリケーションとアプリケーション ドメインをプログラムによって対話させることが必要になる場合があります。

アプリケーション ドメインは、アプリケーションおよびそのデータを相互に分離してセキュリティを向上します。 単一のプロセスで複数のアプリケーション ドメインを実行でき、個別のプロセスに存在する分離レベルは同じです。 複数のアプリケーションを単一のプロセス内で実行すると、サーバーのスケーラビリティが向上します。

次のコード例では、新しいアプリケーション ドメインを作成し、C ドライブに格納されている、作成済みのアセンブリ HelloWorld.exe を読み込んで実行します。

' Create an Application Domain:
Dim newDomain As System.AppDomain = System.AppDomain.CreateDomain("NewApplicationDomain")

' Load and execute an assembly:
newDomain.ExecuteAssembly("c:\HelloWorld.exe")

' Unload the application domain:
System.AppDomain.Unload(newDomain)
// Create an Application Domain:
System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");

// Load and execute an assembly:
newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");

// Unload the application domain:
System.AppDomain.Unload(newDomain);

アプリケーション ドメインの概要

アプリケーション ドメインには、次の特徴があります。

  • アセンブリは、実行する前にアプリケーション ドメインに読み込む必要があります。 詳細については、「アセンブリとグローバル アセンブリ キャッシュ (C# および Visual Basic)」を参照してください。

  • 1 つのアプリケーション ドメインで障害が発生しても、他のアプリケーション ドメインで動作している別のコードには影響しません。

  • プロセス全体を停止せずに個々のアプリケーションを終了し、コードをアンロードできます。 個々のアセンブリや型はアンロードできず、アプリケーション ドメイン全体のみをアンロードできます。

関連項目

参照

参照

アセンブリとグローバル アセンブリ キャッシュ (C# および Visual Basic)

概念

C# プログラミング ガイド

アプリケーション ドメイン

その他の技術情報

Visual Basic のプログラミング ガイド

アプリケーション ドメインとアセンブリを使用したプログラミング