AppDomainManager 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
관리되지 않는 호스트의 관리되는 항목을 제공합니다.
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합니다.
// 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) |
적용 대상
.NET