AppDomainManager AppDomainManager AppDomainManager AppDomainManager Class

定義

アンマネージド ホストに対応するマネージド ホストを提供します。Provides a managed equivalent of an unmanaged host.

public ref class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
type AppDomainManager = class
    inherit MarshalByRefObject
Public Class AppDomainManager
Inherits MarshalByRefObject
継承
AppDomainManagerAppDomainManagerAppDomainManagerAppDomainManager
属性

次の例は、のAppDomainManager非常に単純な実装を示しています。The following example shows a very simple implementation of AppDomainManager.

// To replace the default AppDomainManager, identify  the 
// replacement assembly and replacement type in the 
// APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE  
// environment variables. For example:
// set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
// set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72

using System;
using System.Collections;
using System.Net;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Security.Policy;
using System.Security.Principal;
using System.Threading;
using System.Runtime.InteropServices;

[assembly: System.Security.AllowPartiallyTrustedCallersAttribute()]

namespace MyNamespace
{
    [GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")]
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, 
        Flags = SecurityPermissionFlag.Infrastructure)]
    [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
        Flags = SecurityPermissionFlag.Infrastructure)]
    public class MyAppDomainManager : AppDomainManager
    {
        private HostSecurityManager mySecurityManager = null;

        public MyAppDomainManager()
        {
            Console.WriteLine(" My AppDomain Manager ");
            mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap(
                "CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " +
                "PublicKeyToken=5659fc598c2a503e", 
                "MyNamespace.MySecurityManager") as HostSecurityManager;
            Console.WriteLine(" Custom Security Manager Created.");
        }

        public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
        {
            Console.Write("Initialize new domain called:  ");
            Console.WriteLine(AppDomain.CurrentDomain.FriendlyName);
            InitializationFlags = 
                AppDomainManagerInitializationOptions.RegisterWithHost;
        }

        public override HostSecurityManager HostSecurityManager
        {
            get
            {
                return mySecurityManager;
            }
        }
    }
}
' To replace the default AppDomainManager, identify  the 
' replacement assembly and replacement type in the 
' APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE  
' environment variables. For example:
' set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
' set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
Imports System.Collections
Imports System.Net
Imports System.Reflection
Imports System.Security
Imports System.Security.Permissions
Imports System.Security.Policy
Imports System.Security.Principal
Imports System.Threading
Imports System.Runtime.InteropServices

<assembly: System.Security.AllowPartiallyTrustedCallersAttribute()>
<SecurityPermissionAttribute(SecurityAction.LinkDemand, _
    Flags:=SecurityPermissionFlag.Infrastructure)> _
<SecurityPermissionAttribute(SecurityAction.InheritanceDemand, _
    Flags:=SecurityPermissionFlag.Infrastructure)> _
<GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")> _
Public Class MyAppDomainManager
    Inherits AppDomainManager
    Private mySecurityManager As HostSecurityManager = Nothing
    
    Public Sub New() 
        Console.WriteLine(" My AppDomain Manager ")
        mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap( _
            "CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " & _
            "PublicKeyToken=5659fc598c2a503e", "MyNamespace.MySecurityManager")
        Console.WriteLine(" Custom Security Manager Created.")    
    End Sub
    
    Public Overrides Sub InitializeNewDomain(ByVal appDomainInfo _
        As AppDomainSetup) 
        Console.Write("Initialize new domain called:  ")
        Console.WriteLine(AppDomain.CurrentDomain.FriendlyName)
        InitializationFlags = _
            AppDomainManagerInitializationOptions.RegisterWithHost   
    End Sub

    Public Overrides ReadOnly Property HostSecurityManager() _
        As HostSecurityManager 
        Get
            Return mySecurityManager
        End Get
    End Property
End Class

注釈

重要

ASP.NET でアプリケーションAppDomainManagerドメインを構成する場合は、を使用しないでください。Do not use AppDomainManager to configure an application domain in ASP.NET. ASP.NET では、構成はホストによって処理される必要があります。In ASP.NET, configuration must be handled by the host.

クラスをAppDomainManager実装すると、新しいアプリケーションドメインの作成にホストアプリケーションを参加させることができます。Implementing the AppDomainManager class enables a hosting application to participate in the creation of new application domains. 既定値AppDomainManagerを置き換えるには、APPDOMAIN_MANAGER_ASM 環境AppDomainManager <変数と APPDOMAIN_MANAGER_TYPE 環境変数で置換のアセンブリと種類を識別するか、appDomainManagerAssembly > を使用します。構成ファイルの要素を appDomainManagerType > ます。 <To replace the default AppDomainManager, identify the assembly and type of the replacement AppDomainManager in the APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE environment variables, or use the <appDomainManagerAssembly> and <appDomainManagerType> elements in your configuration file. アセンブリは完全に信頼されている必要があり、グローバルアセンブリキャッシュまたは開始アプリケーションのディレクトリに格納されている必要があります。The assembly must be fully trusted and be contained in the global assembly cache or the directory of the starting application. 型とアセンブリの名前は、環境変数で完全修飾されている必要があります。The type and assembly names must be fully qualified in the environment variables. 次に例を示します。For example:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72

重要

AppDomainManagerサブクラスを含むアセンブリが条件付きAllowPartiallyTrustedCallersAttribute (APTCA) 属性でマークされているアセンブリに依存している場合は、 PartialTrustVisibleAssemblies AppDomainSetupのプロパティに渡すアセンブリを一覧に含める必要があります。アプリケーションドメインを作成するには、を使用します。If the assembly that contains your subclass of AppDomainManager depends on assemblies that are marked with the conditional AllowPartiallyTrustedCallersAttribute (APTCA) attribute, you must include those assemblies in the list that you pass to the PartialTrustVisibleAssemblies property of the AppDomainSetup you use to create application domains. それ以外の場合、条件付き APTCA 属性でマークされているアセンブリは無効になります。Otherwise, the assemblies that are marked with the conditional APTCA attribute will be disabled.

AppDomainManagerは、アンマネージホストに相当するマネージドです。The AppDomainManager is the managed equivalent of the unmanaged host. オブジェクトAppDomainManagerは、プロセス内の新しいアプリケーションドメインの作成に参加し、他のマネージAppDomainコードを実行する前に新しいをカスタマイズできます。An AppDomainManager object participates in the creation of new application domains in a process and can customize the new AppDomain before other managed code runs. AppDomainManagerは、共通言語ランタイムの実行の他の側面に参加するホストマネージャーを指定することもできます。The AppDomainManager can also supply host managers that participate in other aspects of common language runtime execution. たとえば、はAppDomainManager 、アプリケーションドメインのHostSecurityManagerセキュリティの決定に関与するオブジェクトを識別できます。For example, an AppDomainManager can identify a HostSecurityManager object that participates in the security decisions of the application domain.

注意

AppDomainManagerコンストラクターとFullTrust fullTrustAssemblies AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])メソッドには、グローバルアセンブリキャッシュ内のアセンブリ、メソッドでとして指定されたアセンブリなど、付与されたアセンブリだけを読み込むことができます。 InitializeNewDomainOnly assemblies granted FullTrust, such as assemblies in the global assembly cache or identified as fullTrustAssemblies in the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) method can be loaded in the AppDomainManager constructor and the InitializeNewDomain method.

注意

このクラスには、リンク確認要求とクラスレベルでの継承要求が含まれています。This class contains a link demand and an inheritance demand at the class level. SecurityException 、直前の呼び出し元または派生クラスにインフラストラクチャアクセス許可がない場合にスローされます。A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. セキュリティ要求の詳細については、「リンク確認要求と継承の要求」を参照してください。For details about security demands, see Link Demands and Inheritance Demands.

コンストラクター

AppDomainManager() AppDomainManager() AppDomainManager() AppDomainManager()

AppDomainManager クラスの新しいインスタンスを初期化します。Initializes a new instance of the AppDomainManager class.

プロパティ

ApplicationActivator ApplicationActivator ApplicationActivator ApplicationActivator

ドメインのアドインおよびマニフェストに基づくアプリケーションのアクティベーションを処理するアプリケーション アクティベーターを取得します。Gets the application activator that handles the activation of add-ins and manifest-based applications for the domain.

EntryAssembly EntryAssembly EntryAssembly EntryAssembly

アプリケーションの入力アセンブリを取得します。Gets the entry assembly for an application.

HostExecutionContextManager HostExecutionContextManager HostExecutionContextManager HostExecutionContextManager

実行コンテキストのフローを管理する、ホスト実行コンテキスト マネージャーを取得します。Gets the host execution context manager that manages the flow of the execution context.

HostSecurityManager HostSecurityManager HostSecurityManager HostSecurityManager

アプリケーション ドメインのセキュリティの決定に関与するホスト セキュリティ マネージャーを取得します。Gets the host security manager that participates in security decisions for the application domain.

InitializationFlags InitializationFlags InitializationFlags InitializationFlags

カスタム アプリケーション ドメイン マネージャーの初期化フラグを取得します。Gets the initialization flags for custom application domain managers.

メソッド

CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState)

指定した操作がアプリケーション ドメイン内で許可されているかどうかを示します。Indicates whether the specified operation is allowed in the application domain.

CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup)

新規または既存のアプリケーション ドメインを返します。Returns a new or existing application domain.

CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup)

アプリケーション ドメインを作成するためのヘルパー メソッドを提供します。Provides a helper method to create an application domain.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup)

新しいアプリケーション ドメインを初期化します。Initializes the new application domain.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に完全信頼が必要です。Requires full trust for the immediate caller. このメンバーは、部分的に信頼されているコードまたは透過的なコードでは使用できません。This member cannot be used by partially trusted or transparent code.

InheritanceDemand
派生クラスを使用して、実行可能コードを共通言語ランタイムホスティングインフラストラクチャに接続します。for derived classes to plug executable code into the common language runtime hosting infrastructure. Infrastructure (関連する列挙体)Associated enumeration: Infrastructure.

適用対象