AppDomain 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
애플리케이션이 실행되는 격리된 환경인 애플리케이션 도메인을 나타냅니다. 이 클래스는 상속될 수 없습니다.
public ref class AppDomain sealed : MarshalByRefObject
public ref class AppDomain : MarshalByRefObject
public ref class AppDomain sealed : MarshalByRefObject, _AppDomain, System::Security::IEvidenceFactory
public sealed class AppDomain : MarshalByRefObject
public class AppDomain : MarshalByRefObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
type AppDomain = class
inherit MarshalByRefObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type AppDomain = class
inherit MarshalByRefObject
interface _AppDomain
interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
inherit MarshalByRefObject
interface _AppDomain
interface IEvidenceFactory
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Public Class AppDomain
Inherits MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Implements _AppDomain, IEvidenceFactory
- 상속
- 특성
- 구현
예제
이 예제에서는 새 AppDomain를 만들고 새 에서 형식을 인스턴스화하고 해당 AppDomain형식의 개체와 통신하는 방법을 보여줍니다. 또한 이 예제에서는 개체가 가비지 수집되도록 하는 를 언로드 AppDomain 하는 방법을 보여 있습니다.
using namespace System;
using namespace System::Reflection;
using namespace System::Threading;
using namespace System::Security::Policy;
// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
ref class MarshalByRefType : MarshalByRefObject
{
public:
// Call this method via a proxy.
void SomeMethod(String^ callingDomainName)
{
// Get this AppDomain's settings and display some of them.
AppDomainSetup^ ads = AppDomain::CurrentDomain->SetupInformation;
Console::WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
ads->ApplicationName,
ads->ApplicationBase,
ads->ConfigurationFile
);
// Display the name of the calling AppDomain and the name
// of the second domain.
// NOTE: The application's thread has transitioned between
// AppDomains.
Console::WriteLine("Calling from '{0}' to '{1}'.",
callingDomainName,
Thread::GetDomain()->FriendlyName
);
};
};
void main()
{
// Get and display the friendly name of the default AppDomain.
String^ callingDomainName = Thread::GetDomain()->FriendlyName;
Console::WriteLine(callingDomainName);
// Get and display the full name of the EXE assembly.
String^ exeAssembly = Assembly::GetEntryAssembly()->FullName;
Console::WriteLine(exeAssembly);
// Construct and initialize settings for a second AppDomain.
AppDomainSetup^ ads = gcnew AppDomainSetup();
ads->ApplicationBase = AppDomain::CurrentDomain->BaseDirectory;
ads->DisallowBindingRedirects = false;
ads->DisallowCodeDownload = true;
ads->ConfigurationFile =
AppDomain::CurrentDomain->SetupInformation->ConfigurationFile;
// Create the second AppDomain.
AppDomain^ ad2 = AppDomain::CreateDomain("AD #2",
AppDomain::CurrentDomain->Evidence, ads);
// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
MarshalByRefType^ mbrt =
(MarshalByRefType^) ad2->CreateInstanceAndUnwrap(
exeAssembly,
MarshalByRefType::typeid->FullName
);
// Call a method on the object via the proxy, passing the
// default AppDomain's friendly name in as a parameter.
mbrt->SomeMethod(callingDomainName);
// Unload the second AppDomain. This deletes its object and
// invalidates the proxy object.
AppDomain::Unload(ad2);
try
{
// Call the method again. Note that this time it fails
// because the second AppDomain was unloaded.
mbrt->SomeMethod(callingDomainName);
Console::WriteLine("Sucessful call.");
}
catch(AppDomainUnloadedException^)
{
Console::WriteLine("Failed call; this is expected.");
}
}
/* This code produces output similar to the following:
AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
*/
using System;
using System.Reflection;
using System.Threading;
class Module1
{
public static void Main()
{
// Get and display the friendly name of the default AppDomain.
string callingDomainName = Thread.GetDomain().FriendlyName;
Console.WriteLine(callingDomainName);
// Get and display the full name of the EXE assembly.
string exeAssembly = Assembly.GetEntryAssembly().FullName;
Console.WriteLine(exeAssembly);
// Construct and initialize settings for a second AppDomain.
AppDomainSetup ads = new AppDomainSetup();
ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
ads.DisallowBindingRedirects = false;
ads.DisallowCodeDownload = true;
ads.ConfigurationFile =
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
// Create the second AppDomain.
AppDomain ad2 = AppDomain.CreateDomain("AD #2", null, ads);
// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
MarshalByRefType mbrt =
(MarshalByRefType) ad2.CreateInstanceAndUnwrap(
exeAssembly,
typeof(MarshalByRefType).FullName
);
// Call a method on the object via the proxy, passing the
// default AppDomain's friendly name in as a parameter.
mbrt.SomeMethod(callingDomainName);
// Unload the second AppDomain. This deletes its object and
// invalidates the proxy object.
AppDomain.Unload(ad2);
try
{
// Call the method again. Note that this time it fails
// because the second AppDomain was unloaded.
mbrt.SomeMethod(callingDomainName);
Console.WriteLine("Sucessful call.");
}
catch(AppDomainUnloadedException)
{
Console.WriteLine("Failed call; this is expected.");
}
}
}
// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
public class MarshalByRefType : MarshalByRefObject
{
// Call this method via a proxy.
public void SomeMethod(string callingDomainName)
{
// Get this AppDomain's settings and display some of them.
AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation;
Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
ads.ApplicationName,
ads.ApplicationBase,
ads.ConfigurationFile
);
// Display the name of the calling AppDomain and the name
// of the second domain.
// NOTE: The application's thread has transitioned between
// AppDomains.
Console.WriteLine("Calling from '{0}' to '{1}'.",
callingDomainName,
Thread.GetDomain().FriendlyName
);
}
}
/* This code produces output similar to the following:
AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
*/
open System
open System.Reflection
open System.Threading
// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
type MarshalByRefType() =
inherit MarshalByRefObject()
// Call this method via a proxy.
member _.SomeMethod(callingDomainName) =
// Get this AppDomain's settings and display some of them.
let ads = AppDomain.CurrentDomain.SetupInformation
printfn $"AppName={ads.ApplicationName}, AppBase={ads.ApplicationBase}, ConfigFile={ads.ConfigurationFile}"
// Display the name of the calling AppDomain and the name
// of the second domain.
// NOTE: The application's thread has transitioned between
// AppDomains.
printfn $"Calling from '{callingDomainName}' to '{Thread.GetDomain().FriendlyName}'."
// Get and display the friendly name of the default AppDomain.
let callingDomainName = Thread.GetDomain().FriendlyName
printfn $"{callingDomainName}"
// Get and display the full name of the EXE assembly.
let exeAssembly = Assembly.GetEntryAssembly().FullName
printfn $"{exeAssembly}"
// Construct and initialize settings for a second AppDomain.
let ads = AppDomainSetup()
ads.ApplicationBase <- AppDomain.CurrentDomain.BaseDirectory
ads.DisallowBindingRedirects <- false
ads.DisallowCodeDownload <- true
ads.ConfigurationFile <-
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
// Create the second AppDomain.
let ad2 = AppDomain.CreateDomain("AD #2", null, ads)
// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
let mbrt =
ad2.CreateInstanceAndUnwrap(
exeAssembly,
typeof<MarshalByRefType>.FullName) :?> MarshalByRefType
// Call a method on the object via the proxy, passing the
// default AppDomain's friendly name in as a parameter.
mbrt.SomeMethod callingDomainName
// Unload the second AppDomain. This deletes its object and
// invalidates the proxy object.
AppDomain.Unload ad2
try
// Call the method again. Note that this time it fails
// because the second AppDomain was unloaded.
mbrt.SomeMethod callingDomainName
printfn "Sucessful call."
with :? AppDomainUnloadedException ->
printfn "Failed call this is expected."
(* This code produces output similar to the following:
AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call this is expected.
*)
Imports System.Reflection
Imports System.Threading
Module Module1
Sub Main()
' Get and display the friendly name of the default AppDomain.
Dim callingDomainName As String = Thread.GetDomain().FriendlyName
Console.WriteLine(callingDomainName)
' Get and display the full name of the EXE assembly.
Dim exeAssembly As String = [Assembly].GetEntryAssembly().FullName
Console.WriteLine(exeAssembly)
' Construct and initialize settings for a second AppDomain.
Dim ads As New AppDomainSetup()
ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
ads.DisallowBindingRedirects = False
ads.DisallowCodeDownload = True
ads.ConfigurationFile = _
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
' Create the second AppDomain.
Dim ad2 As AppDomain = AppDomain.CreateDomain("AD #2", Nothing, ads)
' Create an instance of MarshalbyRefType in the second AppDomain.
' A proxy to the object is returned.
Dim mbrt As MarshalByRefType = CType( _
ad2.CreateInstanceAndUnwrap(exeAssembly, _
GetType(MarshalByRefType).FullName), MarshalByRefType)
' Call a method on the object via the proxy, passing the default
' AppDomain's friendly name in as a parameter.
mbrt.SomeMethod(callingDomainName)
' Unload the second AppDomain. This deletes its object and
' invalidates the proxy object.
AppDomain.Unload(ad2)
Try
' Call the method again. Note that this time it fails because
' the second AppDomain was unloaded.
mbrt.SomeMethod(callingDomainName)
Console.WriteLine("Sucessful call.")
Catch e As AppDomainUnloadedException
Console.WriteLine("Failed call; this is expected.")
End Try
End Sub
End Module
' Because this class is derived from MarshalByRefObject, a proxy
' to a MarshalByRefType object can be returned across an AppDomain
' boundary.
Public Class MarshalByRefType
Inherits MarshalByRefObject
' Call this method via a proxy.
Public Sub SomeMethod(ByVal callingDomainName As String)
' Get this AppDomain's settings and display some of them.
Dim ads As AppDomainSetup = AppDomain.CurrentDomain.SetupInformation
Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}", _
ads.ApplicationName, ads.ApplicationBase, ads.ConfigurationFile)
' Display the name of the calling AppDomain and the name
' of the second domain.
' NOTE: The application's thread has transitioned between
' AppDomains.
Console.WriteLine("Calling from '{0}' to '{1}'.", _
callingDomainName, Thread.GetDomain().FriendlyName)
End Sub
End Class
'This code produces output similar to the following:
'
' AppDomainX.exe
' AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
' AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
' Calling from 'AppDomainX.exe' to 'AD #2'.
' Failed call; this is expected.
설명
으로 표현 되는 애플리케이션 도메인 AppDomain 개체를 관리 되는 코드를 실행 하는 것에 대 한 격리, 언로드 및 보안 경계를 제공할 수 있습니다.
애플리케이션 도메인을 사용 하 여 프로세스를 중단 시킬 수 있는 작업을 격리 하기. 작업을 실행하는 의 AppDomain 상태가 불안정 AppDomain 해지면 프로세스에 영향을 주지 않고 을 언로드할 수 있습니다. 이는 프로세스를 다시 시작하지 않고 장기간 실행해야 하는 경우에 중요합니다. 또한 데이터를 공유 해야 하는 작업을 격리 하기 애플리케이션 도메인을 사용할 수 있습니다.
어셈블리 기본 애플리케이션 도메인에 로드 된 경우 프로세스를 실행 하는 동안 메모리에서 언로드할 수 없습니다. 그러나을 로드 하는 어셈블리를 실행 하는 두 번째 애플리케이션 도메인을 열면 해당 애플리케이션 도메인이 언로드될 때 어셈블리 로드 아닙니다. 이 기술을 사용하여 종종 큰 DLL을 사용하는 장기 실행 프로세스의 작업 집합을 최소화합니다.
참고
.NET Core에서 AppDomain 구현은 의도적으로 제한되며 격리, 언로드 또는 보안 경계를 제공하지 않습니다. .NET Core의 경우 정확히 하나의 AppDomain가 있습니다. 격리 및 언로딩은 을 통해 AssemblyLoadContext제공됩니다. 보안 경계는 프로세스 경계 및 적절한 원격 기술을 통해 제공해야 합니다.
여러 애플리케이션 도메인은 단일 프로세스;에서 실행할 수 있습니다. 그러나 애플리케이션 도메인과 스레드 간에 한 일 상관 하지 않습니다. 여러 스레드를 단일 애플리케이션 도메인에 속할 수 있습니다 하 고 스레드는 단일 애플리케이션 도메인에서 실행 동안 지정 된 스레드가 지정된 된 시간에 단일 애플리케이션 도메인에 한정 되지 않습니다.
애플리케이션 도메인을 사용 하 여 만들어집니다는 CreateDomain 메서드. AppDomain 인스턴스는 어셈블리(Assembly)를 로드하고 실행하는 데 사용됩니다. AppDomain 가 더 이상 사용되지 않는 경우 언로드할 수 있습니다.
AppDomain 클래스 또는 처리 되지 않은 예외가 throw 되 면 애플리케이션 도메인으로 로드 됩니다 하는 경우 어셈블리 로드 될 때 응답 하도록 애플리케이션을 사용 하도록 설정 하는 이벤트의 집합을 구현 합니다.
애플리케이션 도메인 사용에 대 한 자세한 내용은 참조 하세요. 애플리케이션 도메인합니다.
이 클래스는 MarshalByRefObject, _AppDomain및 IEvidenceFactory 인터페이스를 구현합니다.
개체에 대한 AppDomain 원격 래퍼를 만들면 안 됩니다. 이렇게 하면 원격 액세스와 같은 CreateInstance 메서드를 노출하고 해당 AppDomain에 대한 코드 액세스 보안을 효과적으로 삭제하는 에 대한 원격 참조를 게시할 AppDomain수 있습니다. 원격 AppDomain 에 연결하는 악의적인 클라이언트는 자체 액세스 권한이 있는 모든 리소스에 AppDomain 액세스할 수 있습니다. 확장 MarshalByRefObject 되고 악의적인 클라이언트가 보안 시스템을 우회하는 데 사용할 수 있는 메서드를 구현하는 모든 형식에 대한 원격 래퍼를 만들지 마세요.
주의
기본값은 AppDomainSetup.DisallowCodeDownload 속성은 false
합니다. 이 설정은 서비스에 안전하지 않습니다. 서비스가 부분적으로 신뢰할 수 있는 코드를 다운로드하지 못하도록 하려면 이 속성을 로 true
설정합니다.
속성
ActivationContext |
현재 애플리케이션 도메인의 활성화 컨텍스트를 가져옵니다. |
ApplicationIdentity |
애플리케이션 도메인에서 애플리케이션의 ID를 가져옵니다. |
ApplicationTrust |
애플리케이션에 부여된 권한 및 해당 애플리케이션을 실행할 수 있는 신뢰 수준이 있는지를 설명하는 정보를 가져옵니다. |
BaseDirectory |
어셈블리 확인자에서 어셈블리를 조사하는 데 사용하는 기본 디렉터리를 가져옵니다. |
CurrentDomain |
현재 Thread에 대한 현재 애플리케이션 도메인을 가져옵니다. |
DomainManager |
애플리케이션 도메인이 초기화될 때 호스트에서 제공한 도메인 관리자를 가져옵니다. |
DynamicDirectory |
어셈블리 확인자에서 동적으로 만든 어셈블리를 조사하는 데 사용하는 디렉터리를 가져옵니다. |
Evidence |
이 애플리케이션 도메인과 관련된 Evidence를 가져옵니다. |
FriendlyName |
이 애플리케이션 도메인의 이름을 가져옵니다. |
Id |
프로세스 내 애플리케이션 도메인을 고유하게 식별하는 정수를 가져옵니다. |
IsFullyTrusted |
현재 애플리케이션 도메인에 로드된 어셈블리가 완전 신뢰로 실행되는지를 나타내는 값을 가져옵니다. |
IsHomogenous |
애플리케이션 도메인에 로드된 모든 어셈블리에 부여된 권한 집합이 현재 애플리케이션 도메인에 있는지를 나타내는 값을 가져옵니다. |
MonitoringIsEnabled |
현재 프로세스에 애플리케이션 도메인의 CPU 및 메모리 모니터링을 사용할 수 있는지를 나타내는 값을 가져오거나 설정합니다. 프로세스에 모니터링을 사용할 수 있는 경우 사용하지 못하도록 설정할 수 없습니다. |
MonitoringSurvivedMemorySize |
현재 애플리케이션 도메인에서 참조하도록 알려진 마지막 컬렉션 후에도 유지되는 바이트 수를 가져옵니다. |
MonitoringSurvivedProcessMemorySize |
프로세스의 모든 애플리케이션 도메인에 대한 마지막 컬렉션에서 유지된 총 바이트 수를 가져옵니다. |
MonitoringTotalAllocatedMemorySize |
애플리케이션 도메인이 만들어진 후 실행된 모든 메모리 할당의 총 크기(바이트)를 수집된 메모리의 크기를 제외하지 않고 가져옵니다. |
MonitoringTotalProcessorTime |
프로세스가 시작된 후 현재 애플리케이션 도메인에서 실행되는 동안 모든 스레드에서 사용된 총 프로세서 시간을 가져옵니다. |
PermissionSet |
사용되지 않음.
샌드박스가 적용된 애플리케이션 도메인의 권한 집합을 가져옵니다. |
RelativeSearchPath |
어셈블리 확인자에서 프라이빗 어셈블리를 조사할 기본 디렉터리 아래의 경로를 가져옵니다. |
SetupInformation |
이 인스턴스의 애플리케이션 도메인 구성 정보를 가져옵니다. |
ShadowCopyFiles |
애플리케이션 도메인이 파일을 섀도 복사하도록 구성되어 있는지를 나타내는 표시를 가져옵니다. |
메서드
AppendPrivatePath(String) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
지정된 디렉터리 이름을 전용 경로 목록에 추가합니다. |
ApplyPolicy(String) |
정책이 적용된 후 어셈블리 표시 이름을 반환합니다. |
ClearPrivatePath() |
사용되지 않음.
사용되지 않음.
사용되지 않음.
프라이빗 어셈블리의 위치를 지정하는 경로를 빈 문자열("")로 다시 설정합니다. |
ClearShadowCopyPath() |
사용되지 않음.
사용되지 않음.
사용되지 않음.
섀도 복사된 어셈블리를 포함하는 디렉터리 목록을 빈 문자열("")로 다시 설정합니다. |
CreateComInstanceFrom(String, String) |
지정한 COM 형식의 새 인스턴스를 만듭니다. 매개 변수는 형식 및 형식 이름을 포함하는 어셈블리가 포함된 파일 이름을 지정합니다. |
CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) |
지정한 COM 형식의 새 인스턴스를 만듭니다. 매개 변수는 형식 및 형식 이름을 포함하는 어셈블리가 포함된 파일 이름을 지정합니다. |
CreateDomain(String) |
사용되지 않음.
지정한 이름을 가진 새 애플리케이션 도메인을 만듭니다. |
CreateDomain(String, Evidence) |
제공된 증명 정보를 사용하여 지정한 이름을 가진 새 애플리케이션 도메인을 만듭니다. |
CreateDomain(String, Evidence, AppDomainSetup) |
지정한 이름, 증명 정보 및 애플리케이션 도메인 설치 정보를 사용하여 새 애플리케이션 도메인을 만듭니다. |
CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) |
지정한 이름, 증명 정보, 애플리케이션 도메인 설치 정보, 기본 권한 집합 및 완전히 신뢰할 수 있는 어셈블리의 배열을 사용하여 새 애플리케이션 도메인을 만듭니다. |
CreateDomain(String, Evidence, String, String, Boolean) |
어셈블리의 섀도 복사본이 애플리케이션 도메인에 로드되는지를 지정하는 매개 변수, 증명 정보, 애플리케이션 기본 경로 및 상대 검색 경로를 사용하여 지정한 이름을 가진 새 애플리케이션 도메인을 만듭니다. |
CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[]) |
어셈블리의 섀도 복사본이 애플리케이션 도메인에 로드되는지를 지정하는 매개 변수, 증명 정보, 애플리케이션 기본 경로 및 상대 검색 경로를 사용하여 지정한 이름을 가진 새 애플리케이션 도메인을 만듭니다. 애플리케이션 도메인이 초기화될 때 호출되는 콜백 메서드와 콜백 메서드를 전달할 문자열 인수의 배열을 지정합니다. |
CreateInstance(String, String) |
지정된 어셈블리에 정의되어 있는 지정된 형식의 새 인스턴스를 만듭니다. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
지정된 어셈블리에 정의되어 있는 지정된 형식의 새 인스턴스를 만듭니다. 매개 변수는 바인더, 바인딩 플래그, 생성자 인수, 인수 해석에 사용되는 문화권별 정보 및 선택적 활성화 특성을 지정합니다. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
사용되지 않음.
지정된 어셈블리에 정의되어 있는 지정된 형식의 새 인스턴스를 만듭니다. 매개 변수에서는 바인더, 바인딩 플래그, 생성자 인수, 인수 해석에 사용되는 문화권별 정보, 활성화 특성 및 형식을 만들기 위한 인증을 지정합니다. |
CreateInstance(String, String, Object[]) |
지정된 어셈블리에 정의되어 있는 지정된 형식의 새 인스턴스를 만듭니다. 매개 변수에서는 활성화 특성의 배열을 지정합니다. |
CreateInstanceAndUnwrap(String, String) |
지정한 형식의 새 인스턴스를 만듭니다. 매개 변수에서는 형식이 정의되는 어셈블리와 해당 형식의 이름을 지정합니다. |
CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
형식 이름의 대/소문자를 구분할지 여부, 만들 형식을 선택하는 데 사용되는 바인더와 바인딩 특성, 생성자의 인수, 문화권 및 활성화 특성을 지정하여, 지정한 어셈블리에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
사용되지 않음.
지정한 형식의 새 인스턴스를 만듭니다. 매개 변수에서는 형식의 이름 및 형식을 찾고 만들 수 있는 방법을 지정합니다. |
CreateInstanceAndUnwrap(String, String, Object[]) |
지정한 형식의 새 인스턴스를 만듭니다. 매개 변수에서는 형식이 정의되는 어셈블리, 해당 형식의 이름 및 활성화 특성의 배열을 지정합니다. |
CreateInstanceFrom(String, String) |
지정한 어셈블리 파일에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
지정한 어셈블리 파일에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
사용되지 않음.
지정한 어셈블리 파일에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateInstanceFrom(String, String, Object[]) |
지정한 어셈블리 파일에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateInstanceFromAndUnwrap(String, String) |
지정한 어셈블리 파일에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
형식 이름의 대/소문자를 구분할지 여부, 만들 형식을 선택하는 데 사용되는 바인더와 바인딩 특성, 생성자의 인수, 문화권 및 활성화 특성을 지정하여, 지정한 어셈블리 파일에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
사용되지 않음.
지정한 어셈블리 파일에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateInstanceFromAndUnwrap(String, String, Object[]) |
지정한 어셈블리 파일에 정의된 지정한 형식의 새 인스턴스를 만듭니다. |
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess) |
지정한 이름 및 액세스 모드를 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence) |
사용되지 않음.
지정한 이름, 액세스 모드 및 증명 정보를 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet) |
사용되지 않음.
지정한 이름, 액세스 모드, 증명 정보 및 권한 요청을 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) |
지정한 이름, 액세스 모드 및 사용자 지정 특성을 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource) |
지정한 이름, 액세스 모드 및 사용자 지정 특성과 보안 컨텍스트에 대해 지정한 소스를 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet) |
사용되지 않음.
지정한 이름, 액세스 모드 및 권한 요청을 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String) |
지정한 이름, 액세스 모드 및 스토리지 디렉터리를 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) |
지정한 이름, 액세스 모드, 스토리지 디렉터리 및 동기화 옵션을 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence) |
사용되지 않음.
지정한 이름, 액세스 모드, 스토리지 디렉터리 및 증명 정보를 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet) |
사용되지 않음.
지정한 이름, 액세스 모드, 스토리지 디렉터리, 증명 정보 및 권한 요청을 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean) |
사용되지 않음.
지정한 이름, 액세스 모드, 스토리지 디렉터리, 증명 정보, 권한 요청 및 동기화 옵션을 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) |
사용되지 않음.
지정한 이름, 액세스 모드, 스토리지 디렉터리, 증명 정보, 권한 요청, 동기화 옵션 및 사용자 지정 특성을 사용하여 동적 어셈블리를 정의합니다. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet) |
사용되지 않음.
지정한 이름, 액세스 모드, 스토리지 디렉터리 및 권한 요청을 사용하여 동적 어셈블리를 정의합니다. |
DoCallBack(CrossAppDomainDelegate) |
지정한 대리자에서 식별한 다른 애플리케이션 도메인에 있는 코드를 실행합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
ExecuteAssembly(String) |
지정한 파일에 포함된 어셈블리를 실행합니다. |
ExecuteAssembly(String, Evidence) |
사용되지 않음.
지정한 증명 정보를 사용하여 지정한 파일에 포함된 어셈블리를 실행합니다. |
ExecuteAssembly(String, Evidence, String[]) |
사용되지 않음.
지정한 증명 정보 및 인수를 사용하여 지정한 파일에 포함된 어셈블리를 실행합니다. |
ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm) |
사용되지 않음.
지정한 증명 정보, 인수, 해시 값 및 해시 알고리즘을 사용하여 지정한 파일에 포함된 어셈블리를 실행합니다. |
ExecuteAssembly(String, String[]) |
지정한 인수를 사용하여 지정한 파일에 포함된 어셈블리를 실행합니다. |
ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm) |
사용되지 않음.
지정한 인수, 해시 값 및 해시 알고리즘을 사용하여 지정한 파일에 포함된 어셈블리를 실행합니다. |
ExecuteAssemblyByName(AssemblyName, Evidence, String[]) |
사용되지 않음.
지정한 증거와 인수를 사용하여 AssemblyName이 지정된 어셈블리를 실행합니다. |
ExecuteAssemblyByName(AssemblyName, String[]) |
지정한 인수를 사용하여 AssemblyName이 지정된 어셈블리를 실행합니다. |
ExecuteAssemblyByName(String) |
표시 이름이 지정된 어셈블리를 실행합니다. |
ExecuteAssemblyByName(String, Evidence) |
사용되지 않음.
지정한 증명 정보를 사용하여 표시 이름이 지정된 어셈블리를 실행합니다. |
ExecuteAssemblyByName(String, Evidence, String[]) |
사용되지 않음.
지정한 증명 정보와 인수를 사용하여 표시 이름이 지정된 어셈블리를 실행합니다. |
ExecuteAssemblyByName(String, String[]) |
지정한 인수를 사용하여 표시 이름이 지정된 어셈블리를 실행합니다. |
GetAssemblies() |
이 애플리케이션 도메인의 실행 컨텍스트에 로드된 어셈블리를 가져옵니다. |
GetCurrentThreadId() |
사용되지 않음.
사용되지 않음.
사용되지 않음.
사용되지 않음.
현재 스레드 식별자를 가져옵니다. |
GetData(String) |
지정한 이름에 대해 현재 애플리케이션 도메인에 저장된 값을 가져옵니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
GetType() |
현재 인스턴스의 형식을 가져옵니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
InitializeLifetimeService() |
임대가 만들어지는 것을 방지하여 AppDomain에 영구적 수명을 제공합니다. |
InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
IsCompatibilitySwitchSet(String) |
호환성 스위치가 설정되어 있는지를 확인하고 설정되어 있으면 지정한 호환성 스위치가 설정되어 있는지를 나타내는 nullable 부울 값을 가져옵니다. |
IsDefaultAppDomain() |
애플리케이션 도메인이 해당 프로세스에 대한 기본 애플리케이션 도메인인지를 나타내는 값을 반환합니다. |
IsFinalizingForUnload() |
이 애플리케이션 도메인의 언로드 여부 및 공용 언어 런타임에서 이 애플리케이션 도메인에 포함된 개체를 종료하고 있는지를 나타냅니다. |
Load(AssemblyName) |
AssemblyName이 지정된 Assembly를 로드합니다. |
Load(AssemblyName, Evidence) |
사용되지 않음.
AssemblyName이 지정된 Assembly를 로드합니다. |
Load(Byte[]) |
내보낸 Assembly가 들어 있는 COFF(Common Object File Format) 기반 이미지를 사용한 Assembly를 로드합니다. |
Load(Byte[], Byte[]) |
내보낸 Assembly가 들어 있는 COFF(Common Object File Format) 기반 이미지를 사용한 Assembly를 로드합니다. Assembly에 대한 기호를 나타내는 원시 바이트도 로드됩니다. |
Load(Byte[], Byte[], Evidence) |
사용되지 않음.
내보낸 Assembly가 들어 있는 COFF(Common Object File Format) 기반 이미지를 사용한 Assembly를 로드합니다. Assembly에 대한 기호를 나타내는 원시 바이트도 로드됩니다. |
Load(String) |
표시 이름이 지정된 Assembly를 로드합니다. |
Load(String, Evidence) |
사용되지 않음.
표시 이름이 지정된 Assembly를 로드합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
ReflectionOnlyGetAssemblies() |
애플리케이션 도메인의 리플렉션 전용 컨텍스트로 로드된 어셈블리를 반환합니다. |
SetAppDomainPolicy(PolicyLevel) |
사용되지 않음.
이 애플리케이션 도메인의 보안 정책 수준을 설정합니다. |
SetCachePath(String) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
지정한 디렉터리 경로를 어셈블리가 섀도 복사되는 위치로 설정합니다. |
SetData(String, Object) |
지정한 애플리케이션 도메인 속성에 지정한 값을 할당합니다. |
SetData(String, Object, IPermission) |
속성을 검색할 때 호출자의 요청에 대해 지정된 권한을 사용하여 지정한 애플리케이션 도메인 속성에 지정한 값을 할당합니다. |
SetDynamicBase(String) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
지정한 디렉터리 경로를 동적으로 생성된 파일을 저장하고 액세스하는 하위 디렉터리의 기본 디렉터리로 설정합니다. |
SetPrincipalPolicy(PrincipalPolicy) |
이 애플리케이션 도메인에서 실행되는 동안 스레드가 특정 보안 주체에 바인딩하려는 경우 Principal 개체 및 Identity 개체를 스레드에 연결하는 방법을 지정합니다. |
SetShadowCopyFiles() |
사용되지 않음.
사용되지 않음.
사용되지 않음.
섀도 복사를 설정합니다. |
SetShadowCopyPath(String) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
지정한 디렉터리 경로를 어셈블리가 섀도 복사되는 위치로 설정합니다. |
SetThreadPrincipal(IPrincipal) |
이 애플리케이션 도메인에서 실행되는 동안 스레드가 특정 보안 주체에 바인딩하려는 경우 스레드에 연결되는 기본 Principal 개체를 설정합니다. |
ToString() |
애플리케이션 도메인과 컨텍스트 정책의 이름이 포함된 문자열 표현을 가져옵니다. |
Unload(AppDomain) |
사용되지 않음.
지정한 애플리케이션 도메인을 언로드합니다. |
이벤트
AssemblyLoad |
어셈블리가 로드될 때 발생합니다. |
AssemblyResolve |
어셈블리를 확인하지 못할 경우 발생합니다. |
DomainUnload |
AppDomain이 언로드되려고 할 때 발생합니다. |
FirstChanceException |
애플리케이션 도메인에서 런타임이 예외 처리기에 대한 호출 스택을 검색하기 전에 관리 코드에서 예외가 throw될 경우 발생합니다. |
ProcessExit |
기본 애플리케이션 도메인의 부모 프로세스가 종료하면 이 이벤트가 발생합니다. |
ReflectionOnlyAssemblyResolve |
어셈블리 전용 컨텍스트에서 어셈블리 확인이 실패하면 이 이벤트가 발생합니다. |
ResourceResolve |
리소스가 어셈블리에서 올바르게 링크되거나 포함된 리소스가 아니어서 리소스 확인이 실패하면 이 이벤트가 발생합니다. |
TypeResolve |
형식을 확인하지 못할 경우 발생합니다. |
UnhandledException |
예외가 catch되지 않으면 발생합니다. |
명시적 인터페이스 구현
_AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. |
_AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr) |
인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. |
_AppDomain.GetTypeInfoCount(UInt32) |
개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). |
_AppDomain.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다. |
적용 대상
추가 정보
.NET