ApplicationActivator 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
매니페스트 기반 어셈블리의 활성화를 위한 기본 클래스를 제공합니다.
public ref class ApplicationActivator
[System.Runtime.InteropServices.ComVisible(true)]
public class ApplicationActivator
[<System.Runtime.InteropServices.ComVisible(true)>]
type ApplicationActivator = class
Public Class ApplicationActivator
- 상속
-
ApplicationActivator
- 특성
예제
다음 코드 예제에서는 가져오는 방법을 보여 줍니다.는 ApplicationActivator 현재에서 개체 DomainManager 매니페스트 기반 애플리케이션에 대 한 합니다.
using System;
using System.Collections;
using System.Text;
using System.Security.Policy;
using System.Reflection;
using System.Security;
using System.Runtime.Hosting;
namespace ActivationContextSample
{
public class Program : MarshalByRefObject
{
public static void Main(string[] args)
{
// Get the AppDomainManager from the current domain.
AppDomainManager domainMgr = AppDomain.CurrentDomain.DomainManager;
// Get the ApplicationActivator from the AppDomainManager.
ApplicationActivator appActivator = domainMgr.ApplicationActivator;
Console.WriteLine("Assembly qualified name from the application activator.");
Console.WriteLine(appActivator.GetType().AssemblyQualifiedName);
// Get the ActivationArguments from the SetupInformation property of the domain.
ActivationArguments activationArgs = AppDomain.CurrentDomain.SetupInformation.ActivationArguments;
// Get the ActivationContext from the ActivationArguments.
ActivationContext actContext = activationArgs.ActivationContext;
Console.WriteLine("The ActivationContext.Form property value is: " +
activationArgs.ActivationContext.Form);
Console.Read();
}
public void Run()
{
Main(new string[] { });
Console.ReadLine();
}
}
}
Imports System.Collections
Imports System.Text
Imports System.Security.Policy
Imports System.Reflection
Imports System.Security
Imports System.Security.Permissions
Imports System.Runtime.Hosting
Public Class Program
Inherits MarshalByRefObject
<SecurityPermission(SecurityAction.LinkDemand, ControlDomainPolicy:=True)> _
Public Shared Sub Main(ByVal args() As String)
' Get the AppDomainManager from the current domain.
Dim domainMgr As AppDomainManager = AppDomain.CurrentDomain.DomainManager
' Get the ApplicationActivator from the AppDomainManager.
Dim appActivator As ApplicationActivator = domainMgr.ApplicationActivator
Console.WriteLine("Assembly qualified name from the application activator.")
Console.WriteLine(appActivator.GetType().AssemblyQualifiedName)
Dim ac As ActivationContext = AppDomain.CurrentDomain.ActivationContext
' Get the ActivationArguments from the SetupInformation property of the domain.
Dim activationArgs As ActivationArguments = AppDomain.CurrentDomain.SetupInformation.ActivationArguments
' Get the ActivationContext from the ActivationArguments.
Dim actContext As ActivationContext = activationArgs.ActivationContext
Console.WriteLine("The ActivationContext.Form property value is: " + _
activationArgs.ActivationContext.Form.ToString())
Console.Read()
End Sub
<SecurityPermission(SecurityAction.LinkDemand, ControlDomainPolicy:=True)> _
Public Sub Run()
Main(New String() {})
Console.ReadLine()
End Sub
End Class
설명
한 인스턴스가 지정 된 된 ApplicationActivator 각 클래스 AppDomain 호출 라우팅되는 모든 정품 인증 합니다. 합니다 AppDomainManager 현재 AppDomain 자체 사용자 지정을 제공할 수 있습니다 ApplicationActivator 이 목적을 위해. 사용자 지정 하는 경우 ApplicationActivator 를 제공 하지 않으면 기본 인스턴스에 ApplicationActivator 만들어집니다.
다음 단계는 기본 동작 설명 CreateInstance 메서드 구현:
확인 합니다 ActivationContext 의 추가 기능 활성화과 일치 하는 ActivationContext 현재 도메인입니다; 그렇지 않은 경우 2 단계로 진행 됩니다. 이 고, 그렇지 어셈블리를 실행 하 고 래핑된 개체 핸들에 결과 반환 합니다.
새 추가 기능을 활성화 AppDomain합니다. 다음 단계를 새 이동 AppDomain 를 사용 하 여는 ActivationArguments 추가 기능에 대 한 합니다.
새로 만듭니다 AppDomainSetup 를 사용 하 여 개체를 ActivationArguments 추가 기능에 대해 활성화 컨텍스트를 포함 하는 개체입니다.
호출 된 CreateInstanceHelper 메서드를 사용 하 여 새 도메인 만들기를 AppDomainSetup 개체입니다.
CreateInstanceHelper 메서드 호출을 HostSecurityManager.DetermineApplicationTrust 획득 하는 방법은 ApplicationTrust 추가 기능에 대 한 개체입니다. 경우는 IsApplicationTrustedToRun 속성이 반환
true
, 추가 기능에서 실행 됩니다. 그러지 않으면 CreateInstanceHelper throw를 PolicyException 나타내는 실행 권한을 획득할 수 없습니다.실행 한 다음 새 신뢰할 수 있는 추가 기능의 경우 AppDomain 만들어지고 구성 되는 ActivationContext 는 추가 기능에 추가 기능에서 로드 되 고 실행 하 고 합니다.
추가 기능의 활성화 하면 개체 핸들에 래핑되어 반환 됩니다.
사용자 지정 활성기 상황의 특정 집합의 추가 기능 활성화를 조정할 수 있습니다. 예를 들어, 기존 사용자 지정 활성기를 찾을 수 AppDomain 기능을 활성화이 추가 될 때마다 새 도메인을 만드는 대신 합니다.
사용자 지정 동작을 설명 하는 다음 단계 ApplicationActivator 기존으로 추가 기능을 활성화 하는 AppDomain:
사용자 지정 활성기 같은 도메인을 찾습니다 ActivationContext 는 추가 기능으로 활성화 하는 중입니다.
경우는 ActivationContext 사용한 적 전에 프로세스에서 사용자 지정 활성기를 만듭니다 AppDomain 이 대 한 ActivationContext 호출 하 여를 CreateDomain 메서드를 직접 또는이 작업을 위임 합니다 CreateInstanceHelper 기본 클래스에서.
같은 기존 도메인에 없는 경우 ActivationContext, 다음 활성기를 위임할 수는 CreateInstance 메서드를 호출 하는 ApplicationActivator 대상 도메인에서. 이 수에 대 한 도메인 간 호출을 ApplicationActivator 대상에 상주 하는 AppDomain합니다.
생성자
ApplicationActivator() |
ApplicationActivator 클래스의 새 인스턴스를 초기화합니다. |
메서드
CreateInstance(ActivationContext) |
지정된 활성화 컨텍스트를 사용하여 활성화될 애플리케이션의 인스턴스를 만듭니다. |
CreateInstance(ActivationContext, String[]) |
지정된 활성화 컨텍스트 및 사용자 지정 활성화 데이터를 사용하여 활성화될 애플리케이션의 인스턴스를 만듭니다. |
CreateInstanceHelper(AppDomainSetup) |
지정된 AppDomainSetup 개체를 사용하여 애플리케이션의 인스턴스를 만듭니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |