AppDomainManager クラス

定義

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

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

次の例は、の非常に単純な実装を示して 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

注釈

重要

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 は、APPDOMAIN_MANAGER_ASM と APPDOMAIN_MANAGER_TYPE の環境変数で置換のアセンブリと型を識別する AppDomainManager か、 <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 条件付き (APTCA) 属性でマークされているアセンブリに依存している場合は、 AllowPartiallyTrustedCallersAttribute 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. は、 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 クラスの新しいインスタンスを初期化します。Initializes a new instance of the AppDomainManager class.

プロパティ

ApplicationActivator

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

EntryAssembly

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

HostExecutionContextManager

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

HostSecurityManager

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

InitializationFlags

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

メソッド

CheckSecuritySettings(SecurityState)

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

CreateDomain(String, Evidence, AppDomainSetup)

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

CreateDomainHelper(String, Evidence, AppDomainSetup)

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

CreateObjRef(Type)

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

(継承元 MarshalByRefObject)
Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetLifetimeService()
互換性のために残されています。

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

(継承元 MarshalByRefObject)
GetType()

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

(継承元 Object)
InitializeLifetimeService()
互換性のために残されています。

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

(継承元 MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

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

MemberwiseClone()

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

(継承元 Object)
MemberwiseClone(Boolean)

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

(継承元 MarshalByRefObject)
ToString()

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

(継承元 Object)

適用対象