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
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 'New
    
    Public Overrides Sub InitializeNewDomain(ByVal appDomainInfo _
        As AppDomainSetup) 
        Console.Write("Initialize new domain called:  ")
        Console.WriteLine(AppDomain.CurrentDomain.FriendlyName)
        InitializationFlags = _
            AppDomainManagerInitializationOptions.RegisterWithHost   
    End Sub 'InitializeNewDomain

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

注釈

重要

使用しないAppDomainManagerASP.NET では、アプリケーション ドメインを構成します。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、置換の種類とアセンブリを識別するAppDomainManagerAPPDOMAIN_MANAGER_ASM および 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.

注意

のみのアセンブリFullTrust、グローバル アセンブリ キャッシュにアセンブリなどとして識別されたまたはfullTrustAssembliesで、AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])のメソッドを読み込むことが、AppDomainManagerコンス トラクターとInitializeNewDomainメソッド。Only 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. ASecurityException直前の呼び出し元または派生クラスのいずれかにインフラストラクチャ アクセス許可があるない場合にスローされます。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.

適用対象