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 'MyAppDomainManager 

설명

중요

사용 하지 않는 AppDomainManager asp.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, 어셈블리 및 대체의 유형을 식별 AppDomainManager APPDOMAIN_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, 전역 어셈블리 캐시에서 어셈블리와 같은 든으로 식별 fullTrustAssembliesAppDomain.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 직접 실행 호출자 또는 파생된 클래스 중 하나에 인프라 권한이 없는 경우 throw 됩니다.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. 연관된 열거형: InfrastructureAssociated enumeration: Infrastructure.

적용 대상