Share via


アプリケーション ドメイン (C# プログラミング ガイド)

更新 : 2007 年 11 月

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

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

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

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

static void Main()
{
    // 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# プログラミング ガイド)」を参照してください。

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

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

関連項目

C# 言語仕様

詳細については、「C# 言語仕様」の次のセクションを参照してください。

  • 3.1 アプリケーションの起動

参照

概念

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

参照

アセンブリとグローバル アセンブリ キャッシュ (C# プログラミング ガイド)