appdomainとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework用語 > appdomainの意味・解説 

AppDomain イベント


AppDomain クラス

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

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ClassInterfaceAttribute(ClassInterfaceType.None)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 AppDomain
    Inherits MarshalByRefObject
    Implements _AppDomain, IEvidenceFactory
[ClassInterfaceAttribute(ClassInterfaceType.None)] 
[ComVisibleAttribute(true)] 
public sealed class AppDomain : MarshalByRefObject,
 _AppDomain, IEvidenceFactory
[ClassInterfaceAttribute(ClassInterfaceType::None)] 
[ComVisibleAttribute(true)] 
public ref class AppDomain sealed : public
 MarshalByRefObject, _AppDomain, IEvidenceFactory
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class AppDomain extends MarshalByRefObject
 implements _AppDomain, IEvidenceFactory
ClassInterfaceAttribute(ClassInterfaceType.None) 
ComVisibleAttribute(true) 
public final class AppDomain extends
 MarshalByRefObject implements _AppDomain, IEvidenceFactory
解説解説

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

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

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

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

アプリケーション ドメインの使い方の詳細については、「アプリケーション ドメイン」を参照してください。

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

AppDomain オブジェクトのリモート対応ラッパーは作成しないでください。AppDomain のリモート参照が公開されるため、CreateInstance などのメソッドがリモートで公開され、AppDomain のコード アクセス セキュリティが破壊されてしまう可能性があります。悪意のあるクライアントがリモートの AppDomain に接続すると、AppDomain 自体がアクセスできるすべてのリソースに対してアクセスできるようになります。MarshalByRefObject を拡張し、悪意のあるクライアントがセキュリティ システムをバイパスするために使用できるメソッドを実装している型に対しては、リモート対応ラッパーは作成しないでください。

注意に関するメモ注意

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

Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows CE プラットフォームメモ : 複数のアプリケーション ドメインで使用するためにアセンブリをドメインに中立なコード領域に読み込むことはできません。

使用例使用例

この例では、新しい AppDomain を作成し、その新しい AppDomain で型をインスタンス化して、その型のオブジェクトと通信する方法を示しています。また、この例では、AppDomain をアンロードして、オブジェクトがガベージ コレクタによって収集されるようにする方法を示しています。

Imports System
Imports System.Reflection
Imports System.Threading

Module Module1
    Sub Main()

        ' Get and display the friendly name of the default AppDomain.
        Dim callingDomainName As String
 = Thread.GetDomain().FriendlyName
        Console.WriteLine(callingDomainName)

        ' Get and display the full name of the EXE assembly.
        Dim exeAssembly As String
 = [Assembly].GetEntryAssembly().FullName
        Console.WriteLine(exeAssembly)

        ' Construct and initialize settings for a second AppDomain.
        Dim ads As New AppDomainSetup()
        ads.ApplicationBase = _
            "file:///" + System.Environment.CurrentDirectory
        ads.DisallowBindingRedirects = False
        ads.DisallowCodeDownload = True
        ads.ConfigurationFile = _
            AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

        ' Create the second AppDomain.
        Dim ad2 As AppDomain = AppDomain.CreateDomain("AD
 #2", Nothing, ads)

        ' Create an instance of MarshalbyRefType in the second AppDomain.
 
        ' A proxy to the object is returned.
        Dim mbrt As MarshalByRefType = CType(
 _
            ad2.CreateInstanceAndUnwrap(exeAssembly, _
                 GetType(MarshalByRefType).FullName), MarshalByRefType)

        ' Call a method on the object via the proxy, passing the default
 
        ' AppDomain's friendly name in as a parameter.
        mbrt.SomeMethod(callingDomainName)

        ' Unload the second AppDomain. This deletes its object and 
        ' invalidates the proxy object.
        AppDomain.Unload(ad2)
        Try
            ' Call the method again. Note that this time it fails because
 
            ' the second AppDomain was unloaded.
            mbrt.SomeMethod(callingDomainName)
            Console.WriteLine("Sucessful call.")
        Catch e As AppDomainUnloadedException
            Console.WriteLine("Failed call; this is expected.")
        End Try

    End Sub
End Module

' Because this class is derived from MarshalByRefObject, a proxy 
' to a MarshalByRefType object can be returned across an AppDomain 
' boundary.
Public Class MarshalByRefType
    Inherits MarshalByRefObject

    '  Call this method via a proxy.
    Public Sub SomeMethod(ByVal
 callingDomainName As String)

        ' Get this AppDomain's settings and display some of them.
        Dim ads As AppDomainSetup = AppDomain.CurrentDomain.SetupInformation
        Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
 _
            ads.ApplicationName, ads.ApplicationBase, ads.ConfigurationFile)

        ' Display the name of the calling AppDomain and the name 
        ' of the second domain.
        ' NOTE: The application's thread has transitioned between 
        ' AppDomains.
        Console.WriteLine("Calling from '{0}' to '{1}'.",
 _
            callingDomainName, Thread.GetDomain().FriendlyName)
    End Sub
End Class

'This code produces output similar to the following:
' 
' AppDomainX.exe
' AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
' AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
' Calling from 'AppDomainX.exe' to 'AD #2'.
' Failed call; this is expected.
using System;
using System.Reflection;
using System.Threading;

class Module1
{
    public static void Main()
    {
        // Get and display the friendly name of the default AppDomain.
        string callingDomainName = Thread.GetDomain().FriendlyName;
        Console.WriteLine(callingDomainName);

        // Get and display the full name of the EXE assembly.
        string exeAssembly = Assembly.GetEntryAssembly().FullName;
        Console.WriteLine(exeAssembly);

        // Construct and initialize settings for a second AppDomain.
        AppDomainSetup ads = new AppDomainSetup();
        ads.ApplicationBase = 
            "file:///" + System.Environment.CurrentDirectory;
        ads.DisallowBindingRedirects = false;
        ads.DisallowCodeDownload = true;
        ads.ConfigurationFile = 
            AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

        // Create the second AppDomain.
        AppDomain ad2 = AppDomain.CreateDomain("AD #2", null,
 ads);

        // Create an instance of MarshalbyRefType in the second AppDomain.
 
        // A proxy to the object is returned.
        MarshalByRefType mbrt = 
            (MarshalByRefType) ad2.CreateInstanceAndUnwrap(
                exeAssembly, 
                typeof(MarshalByRefType).FullName
            );

        // Call a method on the object via the proxy, passing the 
        // default AppDomain's friendly name in as a parameter.
        mbrt.SomeMethod(callingDomainName);

        // Unload the second AppDomain. This deletes its object and
 
        // invalidates the proxy object.
        AppDomain.Unload(ad2);
        try
        {
            // Call the method again. Note that this time it fails 
            // because the second AppDomain was unloaded.
            mbrt.SomeMethod(callingDomainName);
            Console.WriteLine("Sucessful call.");
        }
        catch(AppDomainUnloadedException)
        {
            Console.WriteLine("Failed call; this is expected.");
        }
    }
}

// Because this class is derived from MarshalByRefObject, a proxy 
// to a MarshalByRefType object can be returned across an AppDomain
 
// boundary.
public class MarshalByRefType : MarshalByRefObject
{
    //  Call this method via a proxy.
    public void SomeMethod(string
 callingDomainName)
    {
        // Get this AppDomain's settings and display some of them.
        AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation;
        Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}", 
            ads.ApplicationName, 
            ads.ApplicationBase, 
            ads.ConfigurationFile
        );

        // Display the name of the calling AppDomain and the name 
        // of the second domain.
        // NOTE: The application's thread has transitioned between 
        // AppDomains.
        Console.WriteLine("Calling from '{0}' to '{1}'.", 
            callingDomainName, 
            Thread.GetDomain().FriendlyName
        );
    }
}

/* This code produces output similar to the following: 

AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
 */
using namespace System;
using namespace System::Reflection;
using namespace System::Threading;
using namespace System::Security::Policy;

// Because this class is derived from MarshalByRefObject, a proxy 
// to a MarshalByRefType object can be returned across an AppDomain
 
// boundary.
ref class MarshalByRefType : MarshalByRefObject
{
public:
    //  Call this method via a proxy.
    void SomeMethod(String^ callingDomainName)
    {
        // Get this AppDomain's settings and display some of them.
        AppDomainSetup^ ads = AppDomain::CurrentDomain->SetupInformation;
        Console::WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
 
            ads->ApplicationName, 
            ads->ApplicationBase, 
            ads->ConfigurationFile
        );

        // Display the name of the calling AppDomain and the name 
        // of the second domain.
        // NOTE: The application's thread has transitioned between 
        // AppDomains.
        Console::WriteLine("Calling from '{0}' to '{1}'.", 
            callingDomainName, 
            Thread::GetDomain()->FriendlyName
        );
    };
};

void main()
{
    // Get and display the friendly name of the default AppDomain.
    String^ callingDomainName = Thread::GetDomain()->FriendlyName;
    Console::WriteLine(callingDomainName);

    // Get and display the full name of the EXE assembly.
    String^ exeAssembly = Assembly::GetEntryAssembly()->FullName;
    Console::WriteLine(exeAssembly);

    // Construct and initialize settings for a second AppDomain.
    AppDomainSetup^ ads = gcnew AppDomainSetup();
    ads->ApplicationBase = 
        "file:///" + System::Environment::CurrentDirectory;
    ads->DisallowBindingRedirects = false;
    ads->DisallowCodeDownload = true;
    ads->ConfigurationFile = 
        AppDomain::CurrentDomain->SetupInformation->ConfigurationFile;

    // Create the second AppDomain.
    AppDomain^ ad2 = AppDomain::CreateDomain("AD #2", 
        AppDomain::CurrentDomain->Evidence, ads);

    // Create an instance of MarshalbyRefType in the second AppDomain.
 
    // A proxy to the object is returned.
    MarshalByRefType^ mbrt = 
        (MarshalByRefType^) ad2->CreateInstanceAndUnwrap(
            exeAssembly, 
            MarshalByRefType::typeid->FullName
        );

    // Call a method on the object via the proxy, passing the 
    // default AppDomain's friendly name in as a parameter.
    mbrt->SomeMethod(callingDomainName);

    // Unload the second AppDomain. This deletes its object and 
    // invalidates the proxy object.
    AppDomain::Unload(ad2);
    try
    {
        // Call the method again. Note that this time it fails 
        // because the second AppDomain was unloaded.
        mbrt->SomeMethod(callingDomainName);
        Console::WriteLine("Sucessful call.");
    }
    catch(AppDomainUnloadedException^)
    {
        Console::WriteLine("Failed call; this is expected.");
    }
}

/* This code produces output similar to the following: 

AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
 */
継承階層継承階層
System.Object
   System.MarshalByRefObject
    System.AppDomain
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

AppDomain プロパティ


AppDomain メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド AppendPrivatePath 指定したディレクトリ名をプライベート パスに追加します。
パブリック メソッド ApplyPolicy ポリシーが適用された後のアセンブリの表示名を返します。
パブリック メソッド ClearPrivatePath プライベート アセンブリの場所を指定するパスを空の文字列 ("") にリセットします。
パブリック メソッド ClearShadowCopyPath シャドウ コピーされたアセンブリが含まれているディレクトリのリストを空の文字列 ("") にリセットします。
パブリック メソッド CreateComInstanceFrom オーバーロードされます。 指定した COM 型の新しいインスタンスを作成します。
パブリック メソッド CreateDomain オーバーロードされます。 新しいアプリケーション ドメインを作成します。
パブリック メソッド CreateInstance オーバーロードされます。 指定したアセンブリで定義されている、指定した型の新しいインスタンスを作成します。
パブリック メソッド CreateInstanceAndUnwrap オーバーロードされます。 指定した型の新しいインスタンスを作成します。
パブリック メソッド CreateInstanceFrom オーバーロードされます。 指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。
パブリック メソッド CreateInstanceFromAndUnwrap オーバーロードされます。 指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド DefineDynamicAssembly オーバーロードされます。 現在のアプリケーション ドメインで動的アセンブリを定義します。
パブリック メソッド DoCallBack 指定したデリゲートで識別される、別のアプリケーション ドメイン内のコードを実行します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ExecuteAssembly オーバーロードされます。 指定したファイルに格納されているアセンブリを実行します。
パブリック メソッド ExecuteAssemblyByName オーバーロードされます。 アセンブリを実行します。
パブリック メソッド GetAssemblies アプリケーション ドメインの実行コンテキストに読み込まれているアセンブリを取得します。
パブリック メソッド GetCurrentThreadId 現在のスレッドの識別子を取得します。
パブリック メソッド GetData 現在のアプリケーション ドメイン内に格納されている、指定した名前の値を取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType 現在のインスタンスの型を取得します。
パブリック メソッド InitializeLifetimeService オーバーライドされます。 リースが作成されないようにすることで、AppDomain に無期限の有効期間を指定します。
パブリック メソッド IsDefaultAppDomain アプリケーション ドメインが、プロセスの既定のアプリケーション ドメインであるかどうかを示す値を返します。
パブリック メソッド IsFinalizingForUnload このアプリケーション ドメインがアンロード中で、これに含まれるオブジェクトが共通言語ランタイムによって終了処理されているかどうかを示します。
パブリック メソッド Load オーバーロードされます。 現在のアプリケーション ドメインに Assembly を読み込みます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ReflectionOnlyGetAssemblies アプリケーション ドメインのリフレクション専用コンテキストに読み込まれているアセンブリを返します。
パブリック メソッド SetAppDomainPolicy アプリケーション ドメインのセキュリティ ポリシー レベルを設定します。
パブリック メソッド SetCachePath 指定したディレクトリ パスを、アセンブリのシャドウ コピー先として設定します。
パブリック メソッド SetData オーバーロードされます。 アプリケーション ドメイン プロパティに値を代入します。
パブリック メソッド SetDynamicBase 動的に生成されたファイルが格納され、そのファイルへのアクセス先となる場所として、ディレクトリ パスを設定します。
パブリック メソッド SetPrincipalPolicy アプリケーション ドメインでスレッドを実行中に、スレッドがプリンシパルにバインドしようとした場合に、プリンシパル オブジェクトと ID オブジェクトをそのスレッドに関連付ける方法を指定します。
パブリック メソッド SetShadowCopyFiles シャドウ コピーをオンにします。
パブリック メソッド SetShadowCopyPath 指定したディレクトリ パスを、シャドウ コピーするアセンブリがある場所として設定します。
パブリック メソッド SetThreadPrincipal アプリケーション ドメインでスレッドを実行中に、スレッドがプリンシパルにバインドしようとした場合に、そのスレッドに関連付ける既定のプリンシパル オブジェクトを設定します。
パブリック メソッド ToString オーバーライドされます。 アプリケーション ドメインの表示名とコンテキスト ポリシーを含む文字列形式を取得します。
パブリック メソッド Unload 指定したアプリケーション ドメインをアンロードします。
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System._AppDomain.GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子に割り当てます。
インターフェイスの明示的な実装 System._AppDomain.GetTypeInfo オブジェクトの型情報を取得します。その後は、インターフェイスの型情報の取得に使用できます。
インターフェイスの明示的な実装 System._AppDomain.GetTypeInfoCount オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。
インターフェイスの明示的な実装 System._AppDomain.Invoke オブジェクトが公開するプロパティおよびメソッドにアクセスできるようにします。
参照参照

関連項目

AppDomain クラス
System 名前空間

AppDomain メンバ

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

AppDomain データ型で公開されるメンバを以下の表に示します。


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド AppendPrivatePath 指定したディレクトリ名をプライベート パスに追加します。
パブリック メソッド ApplyPolicy ポリシーが適用された後のアセンブリの表示名を返します。
パブリック メソッド ClearPrivatePath プライベート アセンブリの場所を指定するパスを空の文字列 ("") にリセットします。
パブリック メソッド ClearShadowCopyPath シャドウ コピーされたアセンブリが含まれているディレクトリのリストを空の文字列 ("") にリセットします。
パブリック メソッド CreateComInstanceFrom オーバーロードされます。 指定した COM 型の新しいインスタンスを作成します。
パブリック メソッド CreateDomain オーバーロードされます。 新しいアプリケーション ドメインを作成します。
パブリック メソッド CreateInstance オーバーロードされます。 指定したアセンブリで定義されている、指定した型の新しいインスタンスを作成します。
パブリック メソッド CreateInstanceAndUnwrap オーバーロードされます。 指定した型の新しいインスタンスを作成します。
パブリック メソッド CreateInstanceFrom オーバーロードされます。 指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。
パブリック メソッド CreateInstanceFromAndUnwrap オーバーロードされます。 指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド DefineDynamicAssembly オーバーロードされます。 現在のアプリケーション ドメインで動的アセンブリを定義します。
パブリック メソッド DoCallBack 指定したデリゲートで識別される、別のアプリケーション ドメイン内のコードを実行します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド ExecuteAssembly オーバーロードされます。 指定したファイルに格納されているアセンブリを実行します。
パブリック メソッド ExecuteAssemblyByName オーバーロードされます。 アセンブリを実行します。
パブリック メソッド GetAssemblies アプリケーション ドメインの実行コンテキストに読み込まれているアセンブリを取得します。
パブリック メソッド GetCurrentThreadId 現在のスレッドの識別子を取得します。
パブリック メソッド GetData 現在のアプリケーション ドメイン内に格納されている、指定した名前の値を取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType 現在のインスタンスの型を取得します。
パブリック メソッド InitializeLifetimeService オーバーライドされます。 リースが作成されないようにすることで、AppDomain に無期限の有効期間を指定します。
パブリック メソッド IsDefaultAppDomain アプリケーション ドメインが、プロセスの既定のアプリケーション ドメインであるかどうかを示す値を返します。
パブリック メソッド IsFinalizingForUnload このアプリケーション ドメインがアンロード中で、これに含まれるオブジェクトが共通言語ランタイムによって終了処理されているかどうかを示します。
パブリック メソッド Load オーバーロードされます。 現在のアプリケーション ドメインに Assembly を読み込みます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ReflectionOnlyGetAssemblies アプリケーション ドメインのリフレクション専用コンテキストに読み込まれているアセンブリを返します。
パブリック メソッド SetAppDomainPolicy アプリケーション ドメインのセキュリティ ポリシー レベルを設定します。
パブリック メソッド SetCachePath 指定したディレクトリ パスを、アセンブリのシャドウ コピー先として設定します。
パブリック メソッド SetData オーバーロードされます。 アプリケーション ドメイン プロパティに値を代入します。
パブリック メソッド SetDynamicBase 動的に生成されたファイルが格納され、そのファイルへのアクセス先となる場所として、ディレクトリ パスを設定します。
パブリック メソッド SetPrincipalPolicy アプリケーション ドメインでスレッドを実行中に、スレッドがプリンシパルにバインドしようとした場合に、プリンシパル オブジェクトと ID オブジェクトをそのスレッドに関連付ける方法を指定します。
パブリック メソッド SetShadowCopyFiles シャドウ コピーをオンにします。
パブリック メソッド SetShadowCopyPath 指定したディレクトリ パスを、シャドウ コピーするアセンブリがある場所として設定します。
パブリック メソッド SetThreadPrincipal アプリケーション ドメインでスレッドを実行中に、スレッドがプリンシパルにバインドしようとした場合に、そのスレッドに関連付ける既定のプリンシパル オブジェクトを設定します。
パブリック メソッド ToString オーバーライドされます。 アプリケーション ドメインの表示名とコンテキスト ポリシーを含む文字列形式を取得します。
パブリック メソッド Unload 指定したアプリケーション ドメインをアンロードします。
パブリック イベントパブリック イベント
  名前 説明
パブリック イベント UnhandledException 例外がキャッチされない場合に発生します。
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System._AppDomain.GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子に割り当てます。
インターフェイスの明示的な実装 System._AppDomain.GetTypeInfo オブジェクトの型情報を取得します。その後は、インターフェイスの型情報の取得に使用できます。
インターフェイスの明示的な実装 System._AppDomain.GetTypeInfoCount オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。
インターフェイスの明示的な実装 System._AppDomain.Invoke オブジェクトが公開するプロパティおよびメソッドにアクセスできるようにします。
参照参照

関連項目

AppDomain クラス
System 名前空間

_AppDomain イベント


_AppDomain インターフェイス

System.AppDomain クラスのパブリック メンバをアンマネージ コードに公開します。

 

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<CLSCompliantAttribute(False)> _
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)> _
<GuidAttribute("05F696DC-2B29-3663-AD8B-C4389CF2A713")>
 _
<ComVisibleAttribute(True)> _
Public Interface _AppDomain
[CLSCompliantAttribute(false)] 
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] 
[GuidAttribute("05F696DC-2B29-3663-AD8B-C4389CF2A713")] 
[ComVisibleAttribute(true)] 
public interface _AppDomain
[CLSCompliantAttribute(false)] 
[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIUnknown)] 
[GuidAttribute(L"05F696DC-2B29-3663-AD8B-C4389CF2A713")] 
[ComVisibleAttribute(true)] 
public interface class _AppDomain
/** @attribute CLSCompliantAttribute(false) */ 
/** @attribute InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown) */ 
/** @attribute GuidAttribute("05F696DC-2B29-3663-AD8B-C4389CF2A713") */
 
/** @attribute ComVisibleAttribute(true) */ 
public interface _AppDomain
CLSCompliantAttribute(false) 
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown) 
GuidAttribute("05F696DC-2B29-3663-AD8B-C4389CF2A713") 
ComVisibleAttribute(true) 
public interface _AppDomain
解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

_AppDomain プロパティ


_AppDomain メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド AppendPrivatePath COM オブジェクトに、AppDomain.AppendPrivatePath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド ClearPrivatePath COM オブジェクトに、AppDomain.ClearPrivatePath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド ClearShadowCopyPath COM オブジェクトに、AppDomain.ClearShadowCopyPath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド CreateInstance オーバーロードされます。 COM オブジェクトに、System.AppDomain.CreateInstance メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド CreateInstanceFrom オーバーロードされます。 COM オブジェクトに、System.AppDomain.CreateInstanceFrom メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド DefineDynamicAssembly オーバーロードされます。 COM オブジェクトに、System.AppDomain.DefineDynamicAssembly メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド DoCallBack COM オブジェクトに、AppDomain.DoCallBack メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド Equals COM オブジェクトに、継承された Object.Equals メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド ExecuteAssembly オーバーロードされます。 COM オブジェクトに、System.AppDomain.ExecuteAssembly メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetAssemblies COM オブジェクトに、AppDomain.GetAssemblies メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetData COM オブジェクトに、AppDomain.GetData メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetHashCode COM オブジェクトに、継承された Object.GetHashCode メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子に割り当てます。
パブリック メソッド GetLifetimeService COM オブジェクトに、継承された MarshalByRefObject.GetLifetimeService メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetType COM オブジェクトに、AppDomain.GetType メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetTypeInfo オブジェクトの型情報を取得します。その後は、インターフェイスの型情報の取得に使用できます。
パブリック メソッド GetTypeInfoCount オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。
パブリック メソッド InitializeLifetimeService COM オブジェクトに、AppDomain.InitializeLifetimeService メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド Invoke オブジェクトが公開するプロパティおよびメソッドにアクセスできるようにします。
パブリック メソッド Load オーバーロードされます。 COM オブジェクトに、System.AppDomain.Load メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetAppDomainPolicy COM オブジェクトに、AppDomain.SetAppDomainPolicy メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetCachePath COM オブジェクトに、AppDomain.SetCachePath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetData COM オブジェクトに、AppDomain.SetData メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetPrincipalPolicy COM オブジェクトに、AppDomain.SetPrincipalPolicy メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetShadowCopyPath COM オブジェクトに、AppDomain.SetShadowCopyPath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetThreadPrincipal COM オブジェクトに、AppDomain.SetThreadPrincipal メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド ToString COM オブジェクトに、AppDomain.ToString メソッドへのバージョンに依存しないアクセスが用意されています。
参照参照

関連項目

_AppDomain インターフェイス
System 名前空間

_AppDomain メンバ

System.AppDomain クラスのパブリック メンバをアンマネージ コードに公開します。

_AppDomain データ型で公開されるメンバを以下の表に示します。


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド AppendPrivatePath COM オブジェクトに、AppDomain.AppendPrivatePath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド ClearPrivatePath COM オブジェクトに、AppDomain.ClearPrivatePath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド ClearShadowCopyPath COM オブジェクトに、AppDomain.ClearShadowCopyPath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド CreateInstance オーバーロードされます。 COM オブジェクトに、System.AppDomain.CreateInstance メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド CreateInstanceFrom オーバーロードされます。 COM オブジェクトに、System.AppDomain.CreateInstanceFrom メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド DefineDynamicAssembly オーバーロードされます。 COM オブジェクトに、System.AppDomain.DefineDynamicAssembly メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド DoCallBack COM オブジェクトに、AppDomain.DoCallBack メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド Equals COM オブジェクトに、継承された Object.Equals メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド ExecuteAssembly オーバーロードされます。 COM オブジェクトに、System.AppDomain.ExecuteAssembly メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetAssemblies COM オブジェクトに、AppDomain.GetAssemblies メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetData COM オブジェクトに、AppDomain.GetData メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetHashCode COM オブジェクトに、継承された Object.GetHashCode メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子に割り当てます。
パブリック メソッド GetLifetimeService COM オブジェクトに、継承された MarshalByRefObject.GetLifetimeService メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetType COM オブジェクトに、AppDomain.GetType メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド GetTypeInfo オブジェクトの型情報を取得します。その後は、インターフェイスの型情報の取得に使用できます。
パブリック メソッド GetTypeInfoCount オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。
パブリック メソッド InitializeLifetimeService COM オブジェクトに、AppDomain.InitializeLifetimeService メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド Invoke オブジェクトが公開するプロパティおよびメソッドにアクセスできるようにします。
パブリック メソッド Load オーバーロードされます。 COM オブジェクトに、System.AppDomain.Load メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetAppDomainPolicy COM オブジェクトに、AppDomain.SetAppDomainPolicy メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetCachePath COM オブジェクトに、AppDomain.SetCachePath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetData COM オブジェクトに、AppDomain.SetData メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetPrincipalPolicy COM オブジェクトに、AppDomain.SetPrincipalPolicy メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetShadowCopyPath COM オブジェクトに、AppDomain.SetShadowCopyPath メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド SetThreadPrincipal COM オブジェクトに、AppDomain.SetThreadPrincipal メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック メソッド ToString COM オブジェクトに、AppDomain.ToString メソッドへのバージョンに依存しないアクセスが用意されています。
パブリック イベントパブリック イベント
  名前 説明
パブリック イベント AssemblyLoad COM オブジェクトに、AppDomain.AssemblyLoad イベントへのバージョンに依存しないアクセスが用意されています。
パブリック イベント AssemblyResolve COM オブジェクトに、AppDomain.AssemblyResolve イベントへのバージョンに依存しないアクセスが用意されています。
パブリック イベント DomainUnload COM オブジェクトに、AppDomain.DomainUnload イベントへのバージョンに依存しないアクセスが用意されています。
パブリック イベント ProcessExit COM オブジェクトに、AppDomain.ProcessExit イベントへのバージョンに依存しないアクセスが用意されています。
パブリック イベント ResourceResolve COM オブジェクトに、AppDomain.ResourceResolve イベントへのバージョンに依存しないアクセスが用意されています。
パブリック イベント TypeResolve COM オブジェクトに、AppDomain.TypeResolve イベントへのバージョンに依存しないアクセスが用意されています。
パブリック イベント UnhandledException COM オブジェクトに、AppDomain.UnhandledException イベントへのバージョンに依存しないアクセスが用意されています。
参照参照

関連項目

_AppDomain インターフェイス
System 名前空間


英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「appdomain」の関連用語

appdomainのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



appdomainのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS