다음을 통해 공유


AppDomainManager 클래스

정의

관리되지 않는 호스트의 관리되는 항목을 제공합니다.

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합니다.

// 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.Policy;
using System.Security.Principal;
using System.Threading;
using System.Runtime.InteropServices;

[assembly: System.Security.AllowPartiallyTrustedCallersAttribute()]

namespace MyNamespace
{
    [GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")]
    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

설명

중요

사용 하지 않는 AppDomainManager asp.net에서 애플리케이션 도메인을 구성 합니다. ASP.NET에서 구성 된 호스트에서 처리 되어야 합니다.

구현 된 AppDomainManager 클래스의 새 애플리케이션 도메인 생성에 참여 하려면 호스팅 애플리케이션을 활성화 합니다. 기본 AppDomainManager를 바꾸려면 APPDOMAIN_MANAGER_ASM 및 APPDOMAIN_MANAGER_TYPE 환경 변수에서 대체 AppDomainManager 어셈블리 및 형식을 식별하거나 구성 파일에서 appDomainManagerAssembly> 및 appDomainManagerType 요소를 사용합니다<>.< 어셈블리는 완전히 신뢰할 수 있는 이어야 하며 시작 애플리케이션의 디렉터리나 전역 어셈블리 캐시에 포함 되어야 합니다. 환경 변수에서 형식 및 어셈블리 이름은 완전히 한정 되어야 합니다. 예를 들면 다음과 같습니다.

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사용 하 여 애플리케이션 도메인을 만듭니다. 그렇지 않으면 조건부 APTCA 특성으로 표시 되는 어셈블리 비활성화 됩니다.

AppDomainManager 관리 되지 않는 호스트의 관리 되는 것과 같습니다. AppDomainManager 개체 만들기 프로세스에서 새 애플리케이션 도메인에에서 참여 하 고 새 사용자 지정할 수 있습니다 AppDomain 다른 관리 코드를 실행 하기 전에 합니다. AppDomainManager 공용 언어 런타임 실행의 다른 측면에 참여 하는 호스트 관리자를 제공할 수도 있습니다. 예를 들어를 AppDomainManager 식별할 수는 HostSecurityManager 애플리케이션 도메인의 보안 결정에 참여 하는 개체입니다.

참고

전역 어셈블리 캐시의 어셈블리 또는 메서드에서 로 AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])fullTrustAssemblies 식별된 와 같이 가 부여FullTrust된 어셈블리만 생성자 및 InitializeNewDomain 메서드에 AppDomainManager 로드할 수 있습니다.

참고

이 클래스는 클래스 수준에서 상속 요청과 링크 요청을 포함합니다. SecurityException 직접 실행 호출자 또는 파생된 클래스 중 하나에 인프라 권한이 없는 경우 throw 됩니다. 보안 요청에 대 한 자세한 내용은 참조 하세요 링크 요청 하 고 상속 요청합니다.

생성자

AppDomainManager()

AppDomainManager 클래스의 새 인스턴스를 초기화합니다.

속성

ApplicationActivator

도메인의 매니페스트 기반 애플리케이션과 추가 기능의 활성화를 처리하는 애플리케이션 활성기를 가져옵니다.

EntryAssembly

애플리케이션의 진입 어셈블리를 가져옵니다.

HostExecutionContextManager

실행 컨텍스트의 흐름을 관리하는 호스트 실행 컨텍스트 관리자를 가져옵니다.

HostSecurityManager

애플리케이션 도메인의 보안 결정에 참여하는 호스트 보안 관리자를 가져옵니다.

InitializationFlags

사용자 지정 애플리케이션 도메인 관리자의 초기화 플래그를 가져옵니다.

메서드

CheckSecuritySettings(SecurityState)

애플리케이션 도메인에서 특정 작업이 허용되는지 여부를 나타냅니다.

CreateDomain(String, Evidence, AppDomainSetup)

새 애플리케이션 도메인 또는 기존 애플리케이션 도메인을 반환합니다.

CreateDomainHelper(String, Evidence, AppDomainSetup)

애플리케이션 도메인을 만들기 위해 도우미 메서드를 제공합니다.

CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.

(다음에서 상속됨 MarshalByRefObject)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
InitializeLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.

(다음에서 상속됨 MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

새 애플리케이션 도메인을 초기화합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상