次の方法で共有


AppDomain クラス

アプリケーション ドメインを表します。アプリケーション ドメインとは、アプリケーションが実行される分離された環境です。このクラスは継承できません。

この型のすべてのメンバの一覧については、AppDomain メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.AppDomain

<ClassInterface(ClassInterfaceType.None)>
NotInheritable Public Class AppDomain   Inherits MarshalByRefObject   Implements _AppDomain, IEvidenceFactory
[C#]
[ClassInterface(ClassInterfaceType.None)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain,   IEvidenceFactory
[C++]
[ClassInterface(ClassInterfaceType::None)]
public __gc __sealed class AppDomain : public MarshalByRefObject,   _AppDomain, IEvidenceFactory
[JScript]
public
   ClassInterface(ClassInterfaceType.None)
class AppDomain extends MarshalByRefObject implements   _AppDomain, IEvidenceFactory

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

アプリケーション ドメインは、 AppDomain オブジェクトで表され、マネージ コードを実行するための分離境界、アンロード境界、およびセキュリティ境界を示します。

単一のプロセスで複数のアプリケーション ドメインを実行できますが、アプリケーション ドメインとスレッドの間に一対一の相関関係はありません。複数のスレッドが単一のアプリケーション ドメインに属すことができ、特定のスレッドが単一のアプリケーション ドメインに限定されていない場合でも、1 つのスレッドは単一のアプリケーション ドメインで実行されます。

アプリケーション ドメインは、 CreateDomain メソッドを使用して作成されます。 AppDomain のインスタンスを使用して、アセンブリ (Assembly) を読み込んで実行します。 AppDomain は、不要になった場合はアンロードできます。

AppDomain クラスは、アセンブリが読み込まれたり、アプリケーション ドメインがアンロードされたり、処理されない例外がスローされたりしたときにアプリケーションが応答できるように、一連のイベントを実装しています。

アプリケーション ドメインの使い方の詳細については、「 アプリケーション ドメイン 」、または www.gotdotnet.com の「Frequently Asked Questions」の一覧を参照してください。

このクラスは、 MarshalByRefObject インターフェイス、 _AppDomain インターフェイス、および IEvidenceFactory インターフェイスを実装しています。

AppDomain オブジェクトのリモート対応ラッパーは、作成しないでください。リモート対応ラッパーを作成した場合、この AppDomain への参照が意図せずリモートに発行され、結果としてこの AppDomain の CreateInstance メソッド (およびその他のメソッド) がリモートに公開されます。この場合、AppDomain のコード アクセス セキュリティが事実上すべて破棄されます。悪意のあるクライアントがリモートの AppDomain に接続すると、AppDomain 自体がアクセスできるすべてのリソースに対してアクセスできるようになります。MarshalByRefObject を拡張し、悪意のあるクライアントがセキュリティ システムをバイパスするために使用できるメソッドを実装している型に対しては、リモート対応ラッパーは作成しないでください。

注意    System.AppdomainSetup.DisalowCodeDownload プロパティの既定値は false です。この設定は、サービスに対して安全ではありません。信頼性が一部しか確認されていないコードをダウンロードするサービスを防止するには、このプロパティを true に設定します。

.NET Compact Framework - Windows CE .NET プラットフォームに関する注意点: .NET Compact Framework では、複数のアプリケーション ドメインで使用するためにアセンブリをドメインに中立なコード領域に読み込むことはできません。

必要条件

名前空間: System

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

AppDomain メンバ | System 名前空間