다음을 통해 공유


Activator.CreateInstance 메서드

정의

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

오버로드

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
사용되지 않음.

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(Type, Object[], Object[])

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(String, String, Object[])

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
사용되지 않음.

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(Type, Object[])

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(Type, Boolean)

해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(String, String)

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(ActivationContext, String[])

지정된 ActivationContext 개체에 의해 지정되고 지정된 사용자 지정 활성화 데이터로 활성화되는 형식의 인스턴스를 만듭니다.

CreateInstance(Type)

해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(ActivationContext)

지정된 ActivationContext 개체로 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(AppDomain, String, String)

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.

CreateInstance<T>()

매개 변수가 없는 생성자를 사용하여 지정된 제네릭 형식 매개 변수로 지정된 형식의 인스턴스를 만듭니다.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

주의

Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityAttributes As Evidence) As ObjectHandle

매개 변수

domain
AppDomain

이름이 typeName 형식이 만들어지는 도메인입니다.

assemblyName
String

이름이 typeName 형식을 찾는 어셈블리의 이름입니다. assemblyName null경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.

ignoreCase
Boolean

typeName 검색이 대/소문자를 구분하지 않도록 지정하는 true. 검색이 대/소문자를 구분하도록 지정하는 false.

bindingAttr
BindingFlags

typeName 생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다. bindingAttr 0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.

binder
Binder

bindingAttrargs 사용하여 typeName 생성자를 검색하고 식별하는 개체입니다. binder null경우 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다. args 빈 배열 또는 null경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

typeName 생성자에 대해 선언된 형식으로 args 강제 변환을 제어하는 문화권별 정보입니다. culture null경우 현재 스레드에 대한 CultureInfo 사용됩니다.

activationAttributes
Object[]

활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 단일 UrlAttribute 개체를 포함하는 배열입니다. UrlAttribute 원격 개체를 활성화하는 데 필요한 URL을 지정합니다.

securityAttributes
Evidence

보안 정책 결정을 내리고 코드 권한을 부여하는 데 사용되는 정보입니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제해야 하는 핸들이거나 값이 없는 Nullable<T> 인스턴스에 대한 null.

특성

예외

domain 또는 typeNamenull.

일치하는 생성자를 찾을 수 없습니다.

assemblyName typeName 찾을 수 없습니다.

assemblyName 찾을 수 없습니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

activationAttributes 빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.

-또는-

args 가장 일치하는 생성자에는 varargs 인수가 있습니다.

assemblyName 유효한 어셈블리가 아닙니다.

-또는-

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName 현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.

어셈블리 또는 모듈이 두 개의 서로 다른 증명 정보로 두 번 로드되었습니다.

-또는-

어셈블리 이름 또는 코드 베이스가 잘못되었습니다.

설명

호스트가 제한된 보안 권한이 있는 애플리케이션 도메인에서 코드를 실행해야 하는 경우 CreateInstance 사용합니다.

ObjectHandle.Unwrap 사용하여 반환 값 래프 해제

적용 대상

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle

매개 변수

domain
AppDomain

이름이 typeName 형식이 만들어지는 도메인입니다.

assemblyName
String

이름이 typeName 형식을 찾는 어셈블리의 이름입니다. assemblyName null경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.

ignoreCase
Boolean

typeName 검색이 대/소문자를 구분하지 않도록 지정하는 true. 검색이 대/소문자를 구분하도록 지정하는 false.

bindingAttr
BindingFlags

typeName 생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다. bindingAttr 0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.

binder
Binder

bindingAttrargs 사용하여 typeName 생성자를 검색하고 식별하는 개체입니다. binder null경우 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다. args 빈 배열 또는 null경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

typeName 생성자에 대해 선언된 형식으로 args 강제 변환을 제어하는 문화권별 정보입니다. culture null경우 현재 스레드에 대한 CultureInfo 사용됩니다.

activationAttributes
Object[]

활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.

이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제해야 하는 핸들이거나 값이 없는 Nullable<T> 인스턴스에 대한 null.

특성

예외

domain 또는 typeNamenull.

일치하는 생성자를 찾을 수 없습니다.

assemblyName typeName 찾을 수 없습니다.

assemblyName 찾을 수 없습니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

activationAttributes 빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.

-또는-

args 가장 일치하는 생성자에는 varargs 인수가 있습니다.

assemblyName 유효한 어셈블리가 아닙니다.

-또는-

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName 현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.

어셈블리 또는 모듈이 두 개의 서로 다른 증명 정보로 두 번 로드되었습니다.

-또는-

어셈블리 이름 또는 코드 베이스가 잘못되었습니다.

설명

호스트가 제한된 보안 권한이 있는 애플리케이션 도메인에서 코드를 실행해야 하는 경우 CreateInstance 사용합니다.

ObjectHandle.Unwrap 사용하여 반환 값 래프 해제

적용 대상

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle

매개 변수

assemblyName
String

이름이 typeName 형식을 찾는 어셈블리의 이름입니다. assemblyName null경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.

ignoreCase
Boolean

typeName 검색이 대/소문자를 구분하지 않도록 지정하는 true. 검색이 대/소문자를 구분하도록 지정하는 false.

bindingAttr
BindingFlags

typeName 생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다. bindingAttr 0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.

binder
Binder

bindingAttrargs 사용하여 typeName 생성자를 검색하고 식별하는 개체입니다. binder null경우 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다. args 빈 배열 또는 null경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

typeName 생성자에 대해 선언된 형식으로 args 강제 변환을 제어하는 문화권별 정보입니다. culture null경우 현재 스레드에 대한 CultureInfo 사용됩니다.

activationAttributes
Object[]

활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.

이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.

반환

새로 만든 인스턴스에 액세스하려면 래핑을 해제하거나 값이 없는 Nullable<T> 인스턴스에 대해 null 핸들입니다.

예외

typeName null.

일치하는 생성자를 찾을 수 없습니다.

assemblyName typeName 찾을 수 없습니다.

assemblyName 찾을 수 없습니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

activationAttributes 빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.

-또는-

args 가장 일치하는 생성자에는 varargs 인수가 있습니다.

assemblyName 유효한 어셈블리가 아닙니다.

-또는-

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName 현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.

어셈블리 또는 모듈이 두 개의 서로 다른 증명 정보로 두 번 로드되었습니다.

-또는-

어셈블리 이름 또는 코드 베이스가 잘못되었습니다.

설명

ObjectHandle.Unwrap 사용하여 반환 값 래프 해제

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식 및 멤버를 만들 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static object? CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As Object

매개 변수

type
Type

만들 개체의 형식입니다.

bindingAttr
BindingFlags

type 생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다. bindingAttr 0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.

binder
Binder

bindingAttrargs 사용하여 type 생성자를 검색하고 식별하는 개체입니다. binder null경우 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다. args 빈 배열 또는 null경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

type 생성자에 대해 선언된 형식으로 args 강제 변환을 제어하는 문화권별 정보입니다. culture null경우 현재 스레드에 대한 CultureInfo 사용됩니다.

activationAttributes
Object[]

활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.

이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.

반환

새로 만든 개체에 대한 참조이거나 값이 없는 Nullable<T> 인스턴스에 대한 null.

예외

type RuntimeType아닙니다.

-또는-

type 열린 제네릭 형식(즉, ContainsGenericParameters 속성이 true반환)입니다.

type TypeBuilder수 없습니다.

-또는-

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

activationAttributes 빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.

-또는-

type 포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.

-또는-

args 가장 일치하는 생성자에는 varargs 인수가 있습니다.

호출되는 생성자는 예외를 throw합니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

일치하는 생성자를 찾을 수 없습니다.

type COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.

type 올바른 형식이 아닙니다.

설명

호출할 생성자는 지정된 바인더 및 바인딩 특성의 제약 조건 하에서 지정된 인수 목록과 가장 구체적인 일치 항목을 제공해야 합니다.

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식 및 멤버에 액세스할 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

Source:
Activator.cs
Source:
Activator.cs
Source:
Activator.cs

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture);
public static object? CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo) As Object

매개 변수

type
Type

만들 개체의 형식입니다.

bindingAttr
BindingFlags

type 생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다. bindingAttr 0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.

binder
Binder

bindingAttrargs 사용하여 type 생성자를 검색하고 식별하는 개체입니다. binder null경우 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다. args 빈 배열 또는 null경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

type 생성자에 대해 선언된 형식으로 args 강제 변환을 제어하는 문화권별 정보입니다. culture null경우 현재 스레드에 대한 CultureInfo 사용됩니다.

반환

새로 만든 개체에 대한 참조이거나 값이 없는 Nullable<T> 인스턴스에 대한 null.

예외

type RuntimeType아닙니다.

-또는-

type 열린 제네릭 형식(즉, ContainsGenericParameters 속성이 true반환)입니다.

type TypeBuilder수 없습니다.

-또는-

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

type 포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.

-또는-

args 가장 일치하는 생성자에는 varargs 인수가 있습니다.

호출되는 생성자는 예외를 throw합니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

일치하는 생성자를 찾을 수 없습니다.

type COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.

type 올바른 형식이 아닙니다.

설명

호출할 생성자는 지정된 바인더 및 바인딩 특성의 제약 조건 하에서 지정된 인수 목록과 가장 구체적인 일치 항목을 제공해야 합니다.

메모

.NET Framework 2.0부터 이 메서드는 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비퍼블릭 형식 및 멤버에 액세스하는 데 사용할 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(Type, Object[], Object[])

Source:
Activator.cs
Source:
Activator.cs
Source:
Activator.cs

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args, cli::array <System::Object ^> ^ activationAttributes);
public static object? CreateInstance (Type type, object?[]? args, object?[]? activationAttributes);
public static object CreateInstance (Type type, object[] args, object[] activationAttributes);
static member CreateInstance : Type * obj[] * obj[] -> obj
Public Shared Function CreateInstance (type As Type, args As Object(), activationAttributes As Object()) As Object

매개 변수

type
Type

만들 개체의 형식입니다.

args
Object[]

호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다. args 빈 배열 또는 null경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

activationAttributes
Object[]

활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.

이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.

반환

새로 만든 개체에 대한 참조이거나 값이 없는 Nullable<T> 인스턴스에 대한 null.

예외

type RuntimeType아닙니다.

-또는-

type 열린 제네릭 형식(즉, ContainsGenericParameters 속성이 true반환)입니다.

type TypeBuilder수 없습니다.

-또는-

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

activationAttributes 빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.

-또는-

type 포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.

-또는-

args 가장 일치하는 생성자에는 varargs 인수가 있습니다.

호출되는 생성자는 예외를 throw합니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

일치하는 공용 생성자를 찾을 수 없습니다.

type COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.

type 올바른 형식이 아닙니다.

설명

호출할 생성자에 액세스할 수 있어야 하며 지정된 인수 목록과 가장 구체적인 일치 항목을 제공해야 합니다.

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식에 액세스할 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(String, String, Object[])

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, object[] activationAttributes);
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, activationAttributes As Object()) As ObjectHandle

매개 변수

assemblyName
String

이름이 typeName 형식을 찾는 어셈블리의 이름입니다. assemblyName null경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.

activationAttributes
Object[]

활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.

이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null 핸들입니다.

예외

typeName null.

일치하는 공용 생성자를 찾을 수 없습니다.

assemblyName typeName 찾을 수 없습니다.

assemblyName 찾을 수 없습니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

activationAttributes 빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.

-또는-

activationAttributes UrlAttribute 아닙니다.

배열.

assemblyName 유효한 어셈블리가 아닙니다.

-또는-

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName 현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.

어셈블리 또는 모듈이 두 개의 서로 다른 증명 정보로 두 번 로드되었습니다.

-또는-

어셈블리 이름 또는 코드 베이스가 잘못되었습니다.

호출된 생성자가 예외를 throw합니다.

-또는-

activationAttributes지정된 대상에서 원격 활성화를 시도할 때 오류가 발생했습니다.

설명

ObjectHandle.Unwrap 사용하여 반환 값 래프 해제

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여하고 게시되지 않은 형식의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식을 만들 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

주의

Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityInfo);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityInfo As Evidence) As ObjectHandle

매개 변수

assemblyName
String

이름이 typeName 형식을 찾는 어셈블리의 이름입니다. assemblyName null경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.

ignoreCase
Boolean

typeName 검색이 대/소문자를 구분하지 않도록 지정하는 true. 검색이 대/소문자를 구분하도록 지정하는 false.

bindingAttr
BindingFlags

typeName 생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다. bindingAttr 0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.

binder
Binder

bindingAttrargs 사용하여 typeName 생성자를 검색하고 식별하는 개체입니다. binder null경우 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다. args 빈 배열 또는 null경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

typeName 생성자에 대해 선언된 형식으로 args 강제 변환을 제어하는 문화권별 정보입니다. culture null경우 현재 스레드에 대한 CultureInfo 사용됩니다.

activationAttributes
Object[]

활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.

이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.

securityInfo
Evidence

보안 정책 결정을 내리고 코드 권한을 부여하는 데 사용되는 정보입니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제해야 하는 핸들이거나 값이 없는 Nullable<T> 인스턴스에 대한 null.

특성

예외

typeName null.

일치하는 생성자를 찾을 수 없습니다.

assemblyName typeName 찾을 수 없습니다.

assemblyName 찾을 수 없습니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

activationAttributes 빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.

-또는-

args 가장 일치하는 생성자에는 varargs 인수가 있습니다.

assemblyName 유효한 어셈블리가 아닙니다.

-또는-

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName 현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.

어셈블리 또는 모듈이 두 개의 서로 다른 증명 정보로 두 번 로드되었습니다.

-또는-

어셈블리 이름 또는 코드 베이스가 잘못되었습니다.

설명

ObjectHandle.Unwrap 사용하여 반환 값 래프 해제

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식 및 멤버를 만들 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(Type, Object[])

Source:
Activator.cs
Source:
Activator.cs
Source:
Activator.cs

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Object ^ CreateInstance(Type ^ type, ... cli::array <System::Object ^> ^ args);
public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args);
public static object CreateInstance (Type type, params object[] args);
public static object? CreateInstance (Type type, params object?[]? args);
public static object CreateInstance (Type type, object[] args);
static member CreateInstance : Type * obj[] -> obj
Public Shared Function CreateInstance (type As Type, ParamArray args As Object()) As Object
Public Shared Function CreateInstance (type As Type, args As Object()) As Object

매개 변수

type
Type

만들 개체의 형식입니다.

args
Object[]

호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다. args 빈 배열 또는 null경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

반환

새로 만든 개체에 대한 참조이거나 값이 없는 Nullable<T> 인스턴스에 대한 null.

예외

type RuntimeType아닙니다.

-또는-

type 열린 제네릭 형식(즉, ContainsGenericParameters 속성이 true반환)입니다.

type TypeBuilder수 없습니다.

-또는-

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

type 포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.

-또는-

args 가장 일치하는 생성자에는 varargs 인수가 있습니다.

호출되는 생성자는 예외를 throw합니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

참고: windows 스토어 앱 또는 이식 가능한 클래스 라이브러리.NET에서 기본 클래스 예외인 대신 catch합니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

일치하는 공용 생성자를 찾을 수 없습니다.

참고: windows 스토어 앱 또는 이식 가능한 클래스 라이브러리.NET에서 기본 클래스 예외인 대신 catch합니다.

type COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.

type 올바른 형식이 아닙니다.

예제

다음 예제에서는 CreateInstance(Type, Object[]) 메서드를 호출하여 String 개체를 만듭니다. String.String(Char[], Int32, Int32) 생성자를 호출하여 14번째 위치에서 시작하는 문자 배열의 10개 요소가 포함된 문자열을 인스턴스화합니다.

using System;

public class Example
{
   public static void Main()
   {
      // Initialize array of characters from a to z.
      char[] chars = new char[26];
      for (int ctr = 0; ctr < 26; ctr++)
         chars[ctr] = (char) (ctr + 0x0061);

      object obj = Activator.CreateInstance(typeof(string),
                                            new object[] { chars, 13, 10 } );
      Console.WriteLine(obj);
   }
}
// The example displays the following output:
//       nopqrstuvw
open System

// Initialize array of characters from a to z.
let chars = [| 'a' .. 'z' |]

let obj = Activator.CreateInstance(typeof<string>, chars[13..22])

printfn $"{obj}"

// The example displays the following output:
//       nopqrstuvw
Module Example
   Public Sub Main()
      ' Initialize array of characters from a to z.
      Dim chars(25) As Char 
      For ctr As Short = 0 To 25
         chars(ctr) = ChrW(ctr + &h0061)
      Next 
      Dim obj As Object = Activator.CreateInstance(GetType(String),
                                                   { chars, 13, 10 })
      Console.WriteLine(obj)                                          
   End Sub
End Module
' The example displays the following output:
'       nopqrstuvw

다음 예제에서는 요소가 String 생성자에 전달될 인수인 들쭉날쭉한 배열을 만듭니다. 그런 다음 각 배열을 CreateInstance(Type, Object[]) 메서드에 전달하여 적절한 문자열 생성자를 호출합니다.

using System;

public class Example
{
   public static void Main()
   {
      char[] characters = { 'a', 'b', 'c', 'd', 'e', 'f' };
      object[][] arguments = new object[3][] { new object[] { characters },
                                               new object[] { characters, 1, 4 },
                                               new object[] { characters[1], 20 } };

      for (int ctr = 0; ctr <= arguments.GetUpperBound(0); ctr++) {
         object[] args = arguments[ctr];
         object result = Activator.CreateInstance(typeof(string), args);
         Console.WriteLine("{0}: {1}", result.GetType().Name, result);
      }
   }
}
// The example displays the following output:
//    String: abcdef
//    String: bcde
//    String: bbbbbbbbbbbbbbbbbbbb
open System

let chars = [| 'a' .. 'f' |]

let arguments =
    [| chars
       chars[1..4]
       Array.create 20 chars[1] |]

for args in arguments do
    let result =
        Activator.CreateInstance(typeof<string>, args)

    printfn $"{result.GetType().Name}: {result}"

// The example displays the following output:
//    String: abcdef
//    String: bcde
//    String: bbbbbbbbbbbbbbbbbbbb
Module Example
   Public Sub Main()
      Dim characters() As Char = { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c }
      Dim arguments()() As Object = new Object(2)() { New Object() { characters },
                                                      New Object() { characters, 1, 4 },
                                                      New Object() { characters(1), 20 } }

      For ctr As Integer = 0 To arguments.GetUpperBound(0)
         Dim args() As Object = arguments(ctr)
         Dim result As Object = Activator.CreateInstance(GetType(String), args)
         Console.WriteLine("{0}: {1}", result.GetType().Name, result)
      Next
   End Sub
End Module
' The example displays the following output:
'       String: abcdef
'       String: bcde
'       String: bbbbbbbbbbbbbbbbbbbb

설명

호출할 생성자에 액세스할 수 있어야 하며 지정된 인수 목록과 가장 구체적인 일치 항목을 제공해야 합니다.

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식에 액세스할 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(Type, Boolean)

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object? CreateInstance (Type type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj
Public Shared Function CreateInstance (type As Type, nonPublic As Boolean) As Object

매개 변수

type
Type

만들 개체의 형식입니다.

nonPublic
Boolean

public 또는 nonpublic 매개 변수 없는 생성자가 일치할 수 있는지 true. 공용 매개 변수가 없는 생성자만 일치시킬 수 있는지 false.

반환

새로 만든 개체에 대한 참조이거나 Nullable<T> 인스턴스에 대한 null.

예외

type RuntimeType아닙니다.

-또는-

type 열린 제네릭 형식(즉, ContainsGenericParameters 속성이 true반환)입니다.

type TypeBuilder수 없습니다.

-또는-

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

type 포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.

호출되는 생성자는 예외를 throw합니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

일치하는 공용 생성자를 찾을 수 없습니다.

type COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.

type 올바른 형식이 아닙니다.

설명

메모

.NET Framework 2.0부터 이 메서드는 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비퍼블릭 형식 및 멤버에 액세스하는 데 사용할 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(String, String)

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String) As ObjectHandle

매개 변수

assemblyName
String

이름이 typeName 형식을 찾는 어셈블리의 이름입니다. assemblyName null경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null 핸들입니다.

예외

typeName null.

일치하는 공용 생성자를 찾을 수 없습니다.

assemblyName typeName 찾을 수 없습니다.

assemblyName 찾을 수 없습니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

assemblyName 유효한 어셈블리가 아닙니다.

-또는-

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName 현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.

어셈블리 또는 모듈이 두 개의 서로 다른 증명 정보로 두 번 로드되었습니다.

-또는-

어셈블리 이름 또는 코드 베이스가 잘못되었습니다.

예제

다음 예제에서는 이름이 PersonInfo어셈블리에서 Person 클래스를 정의합니다. Person 클래스에는 두 개의 생성자가 있으며, 그 중 하나는 매개 변수가 없습니다.

using System;

public class Person
{
   private string _name;

   public Person()
   { }

   public Person(string name)
   {
      this._name = name;
   }

   public string Name
   { get { return this._name; }
     set { this._name = value; } }

   public override string ToString()
   {
      return this._name;
   }
}
type Person(name) =
    member val Name = name with get, set

    override this.ToString() = this.Name

    new () = Person Unchecked.defaultof<string>
Public Class Person
   Private _name As String
   
   Public Sub New()
   End Sub
   
   Public Sub New(name As String)
      Me._name = name
   End Sub
   
   Public Property Name As String
      Get
         Return Me._name
      End Get
      Set
         Me._name = value
      End Set
   End Property
   
   Public Overrides Function ToString() As String
      Return Me._name
   End Function
End Class

다음 예제에서는 CreateInstance(String, String) 메서드를 호출하여 Person 클래스를 인스턴스화합니다. 프로젝트에 추가하려면 PersonInfo.dll 대한 참조가 필요합니다. CreateInstance(String, String) 메서드는 Person 클래스 매개 변수 없는 생성자를 호출하므로 이 예제에서는 해당 Name 속성에 값을 할당합니다.

using System;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      Person p = (Person) handle.Unwrap();
      p.Name = "Samuel";
      Console.WriteLine(p);
   }
}
// The example displays the following output:
//        Samuel
open System

let handle = Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap() :?> Person
p.Name <- "Samuel"
printfn $"{p}"

// The example displays the following output:
//        Samuel
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Person = CType(handle.Unwrap(), Person)
      p.Name = "Samuel"
      Console.WriteLine(p)
   End Sub
End Module
' The example displays the following output:
'       Samuel

그러나 CreateInstance 머신 경계를 넘거나 디자인 타임에 알려지지 않은 형식을 인스턴스화하기 위해 자주 호출됩니다. 이 경우 프로젝트에 어셈블리에 대한 참조를 포함할 수 없으며 형식의 멤버에 대한 초기 바인딩된 호출을 수행할 수 없습니다. 이 제한을 해결하기 위해 다음 예제에서는 리플렉션과 함께 CreateInstance 메서드를 사용하여 Person 개체의 Name 속성에 값을 할당하고 해당 값을 표시합니다.

using System;
using System.Reflection;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      object p = handle.Unwrap();
      Type t = p.GetType();
      PropertyInfo prop = t.GetProperty("Name");
      if (prop != null)
         prop.SetValue(p, "Samuel");

      MethodInfo method = t.GetMethod("ToString");
      object retVal = method.Invoke(p, null);
      if (retVal != null)
         Console.WriteLine(retVal);
   }
}
// The example displays the following output:
//        Samuel
open System

let handle =
    Activator.CreateInstance("PersonInfo", "Person")

let p = handle.Unwrap()
let t = p.GetType()
let prop = t.GetProperty "Name"

if not (isNull prop) then
    prop.SetValue(p, "Samuel")

let method = t.GetMethod "ToString"
let retVal = method.Invoke(p, null)

if not (isNull retVal) then
    printfn $"{retVal}"

// The example displays the following output:
//        Samuel
Imports System.Reflection
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Object = handle.Unwrap()
      Dim t As Type = p.GetType()
      Dim prop As PropertyInfo = t.GetProperty("Name")
      if Not prop Is Nothing Then
         prop.SetValue(p, "Samuel")
      End If   
      Dim method As MethodInfo = t.GetMethod("ToString")
      Dim retVal As Object = method.Invoke(p, Nothing) 
      If Not retVal Is Nothing Then
         Console.WriteLine(retVal)
      End If
   End Sub
End Module
' The example displays the following output:
'       Samuel

설명

ObjectHandle.Unwrap 사용하여 반환 값 래프 해제

assemblyName 다음 중 하나일 수 있습니다.

  • 경로 또는 파일 확장명을 사용하지 않는 어셈블리의 단순 이름입니다. 예를 들어 경로와 이름이 있는 어셈블리의 TypeExtensions 지정합니다.\bin\TypeExtensions.dll.

  • 간단한 이름, 버전, 문화권 및 공개 키 토큰으로 구성된 서명된 어셈블리의 전체 이름입니다. 예를 들어 "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51"입니다.

공용 언어 런타임에서 어셈블리를 식별하고 로드하는 방법에 대한 자세한 내용은 런타임에서 어셈블리를 찾는 방법참조하세요. 애플리케이션 구성 파일을 사용하여 어셈블리 위치를 정의하는 방법에 대한 자세한 내용은 어셈블리의 위치지정을 참조하세요. assemblyName 발견되면 기본 컨텍스트에 로드됩니다.

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식을 만들 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(ActivationContext, String[])

지정된 ActivationContext 개체에 의해 지정되고 지정된 사용자 지정 활성화 데이터로 활성화되는 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext, cli::array <System::String ^> ^ activationCustomData);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext, string[] activationCustomData);
static member CreateInstance : ActivationContext * string[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext, activationCustomData As String()) As ObjectHandle

매개 변수

activationContext
ActivationContext

만들 개체를 지정하는 활성화 컨텍스트 개체입니다.

activationCustomData
String[]

사용자 지정 활성화 데이터를 포함하는 유니코드 문자열의 배열입니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null 핸들입니다.

설명

반환 값을 래프 해제하려면 ObjectHandle.Unwrap 메서드를 사용합니다.

활성화 컨텍스트는 매니페스트 기반 활성화 중에 도메인 정책을 설정하고 애플리케이션 기반 보안 모델을 제공하는 데 사용됩니다. ActivationContext 클래스에는 애플리케이션 매니페스트에 대한 액세스를 제공하는 ApplicationIdentity 개체가 포함되어 있습니다. 자세한 내용은 ApplicationSecurityManager 클래스를 참조하세요.

추가 정보

적용 대상

CreateInstance(Type)

Source:
Activator.cs
Source:
Activator.cs
Source:
Activator.cs

해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
public static object? CreateInstance (Type type);
static member CreateInstance : Type -> obj
Public Shared Function CreateInstance (type As Type) As Object

매개 변수

type
Type

만들 개체의 형식입니다.

반환

새로 만든 개체에 대한 참조이거나 Nullable<T> 인스턴스에 대한 null.

예외

type RuntimeType아닙니다.

-또는-

type 열린 제네릭 형식(즉, ContainsGenericParameters 속성이 true반환)입니다.

type TypeBuilder수 없습니다.

-또는-

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

-또는-

type 포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.

호출되는 생성자는 예외를 throw합니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

참고: windows 스토어 앱 또는 이식 가능한 클래스 라이브러리.NET에서 기본 클래스 예외인 대신 catch합니다.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

일치하는 공용 생성자를 찾을 수 없습니다.

참고: windows 스토어 앱 또는 이식 가능한 클래스 라이브러리.NET에서 기본 클래스 예외인 대신 catch합니다.

type COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.

type 올바른 형식이 아닙니다.

예제

다음 코드 예제에서는 CreateInstance(Type) 메서드를 호출하는 방법을 보여 줍니다. 여러 다른 형식의 인스턴스가 만들어지고 기본값이 표시됩니다.

using namespace System;

ref class DynamicInstanceList
{
private:
    static String^ instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

public:
    static void Main()
    {
        array<String^>^ instances = instanceSpec->Split(';');
        Array^ instlist = Array::CreateInstance(Object::typeid, instances->Length);
        Object^ item;

        for (int i = 0; i < instances->Length; i++)
        {
            // create the object from the specification string
            Console::WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator::CreateInstance(Type::GetType(instances[i]));
            instlist->SetValue(item, i);
        }
        Console::WriteLine("\nObjects and their default values:\n");
        for each (Object^ o in instlist)
        {
            Console::WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o->GetType()->FullName, o->ToString(), o->GetHashCode());
        }
    }
};

int main()
{
    DynamicInstanceList::Main();
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
using System;

class DynamicInstanceList
{
    private static string instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

    public static void Main()
    {
        string[] instances = instanceSpec.Split(';');
        Array instlist = Array.CreateInstance(typeof(object), instances.Length);
        object item;
        for (int i = 0; i < instances.Length; i++)
        {
            // create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator.CreateInstance(Type.GetType(instances[i]));
            instlist.SetValue(item, i);
        }
        Console.WriteLine("\nObjects and their default values:\n");
        foreach (object o in instlist)
        {
            Console.WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o.GetType().FullName, o.ToString(), o.GetHashCode());
        }
    }
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
open System

let instanceSpec =
    "System.EventArgs;System.Random;System.Exception;System.Object;System.Version"

let instances = instanceSpec.Split ';'
let instlist = Array.zeroCreate instances.Length
let mutable item = obj ()

for i = 0 to instances.Length - 1 do
    // create the object from the specification string
    printfn $"Creating instance of: {instances.[i]}"
    item <- Activator.CreateInstance(Type.GetType instances.[i])
    instlist.[i] <- item

printfn "\nObjects and their default values:\n"

for o in instlist do
    printfn $"Type:     {o.GetType().FullName}\nValue:    {o}\nHashCode: {o.GetHashCode()}\n"


// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
Class DynamicInstanceList
    Private Shared instanceSpec As String = "System.EventArgs;System.Random;" + _
        "System.Exception;System.Object;System.Version"

    Public Shared Sub Main()
        Dim instances() As String = instanceSpec.Split(";")
        Dim instlist As Array = Array.CreateInstance(GetType(Object), instances.Length)
        Dim item As Object

        For i As Integer = 0 To instances.Length -1
            ' create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances(i))
            item = Activator.CreateInstance(Type.GetType(instances(i)))
            instlist.SetValue(item, i)
        Next i
        Console.WriteLine(Environment.NewLine + "Objects and their default values:" + Environment.NewLine)
        For Each o As Object In instlist
            Console.WriteLine("Type:     {0}" + Environment.NewLine + "Value:    {1}" + _
                Environment.NewLine + "HashCode: {2}" + Environment.NewLine, _
                o.GetType().FullName, o.ToString(), o.GetHashCode())
        Next o
    End Sub
End Class

' This program will display output similar to the following:
'
' Creating instance of: System.EventArgs
' Creating instance of: System.Random
' Creating instance of: System.Exception
' Creating instance of: System.Object
' Creating instance of: System.Version
'
' Objects and their default values:
'
' Type:     System.EventArgs
' Value:    System.EventArgs
' HashCode: 46104728
'
' Type:     System.Random
' Value:    System.Random
' HashCode: 12289376
'
' Type:     System.Exception
' Value:    System.Exception: Exception of type 'System.Exception' was thrown.
' HashCode: 55530882
'
' Type:     System.Object
' Value:    System.Object
' HashCode: 30015890
'
' Type:     System.Version
' Value:    0.0
' HashCode: 1048575

설명

호출할 생성자에 액세스할 수 있어야 합니다.

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식에 액세스할 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

CreateInstance(ActivationContext)

지정된 ActivationContext 개체로 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext);
static member CreateInstance : ActivationContext -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext) As ObjectHandle

매개 변수

activationContext
ActivationContext

만들 개체를 지정하는 활성화 컨텍스트 개체입니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null 핸들입니다.

설명

반환 값을 래프 해제하려면 ObjectHandle.Unwrap 메서드를 사용합니다.

활성화 컨텍스트는 매니페스트 기반 활성화 중에 도메인 정책을 설정하고 애플리케이션 기반 보안 모델을 제공하는 데 사용됩니다. ActivationContext 클래스에는 애플리케이션 매니페스트에 대한 액세스를 제공하는 ApplicationIdentity 개체가 포함되어 있습니다. 자세한 내용은 ApplicationSecurityManager 클래스를 참조하세요.

추가 정보

적용 대상

CreateInstance(AppDomain, String, String)

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String) As ObjectHandle

매개 변수

domain
AppDomain

이름이 typeName 형식이 만들어지는 원격 도메인입니다.

assemblyName
String

이름이 typeName 형식을 찾는 어셈블리의 이름입니다. assemblyName null경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null 핸들입니다.

특성

예외

typeName 또는 domainnull.

일치하는 공용 생성자를 찾을 수 없습니다.

assemblyName typeName 찾을 수 없습니다.

assemblyName 찾을 수 없습니다.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.

추상 형식의 인스턴스를 만들 수 없습니다.

-또는-

이 멤버는 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.

COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.

assemblyName 유효한 어셈블리가 아닙니다.

-또는-

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName 현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.

어셈블리 또는 모듈이 두 개의 서로 다른 증명 정보로 두 번 로드되었습니다.

-또는-

어셈블리 이름 또는 코드 베이스가 잘못되었습니다.

설명

호스트가 제한된 보안 권한이 있는 애플리케이션 도메인에서 코드를 실행해야 하는 경우 CreateInstance 사용합니다.

ObjectHandle.Unwrap 사용하여 반환 값 래프 해제

적용 대상

CreateInstance<T>()

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

매개 변수가 없는 생성자를 사용하여 지정된 제네릭 형식 매개 변수로 지정된 형식의 인스턴스를 만듭니다.

public:
generic <typename T>
 static T CreateInstance();
public static T CreateInstance<T> ();
static member CreateInstance : unit -> 'T
Public Shared Function CreateInstance(Of T) () As T

형식 매개 변수

T

만들 형식입니다.

반환

T

새로 만든 개체에 대한 참조이거나 Nullable<T> 인스턴스에 대한 null.

예외

추상 클래스의 인스턴스를 만들 수 없거나 T 대해 지정된 형식에 매개 변수가 없는 생성자가 없습니다.

참고: windows 스토어 앱 또는 이식 가능한 클래스 라이브러리.NET에서 기본 클래스 예외인 대신 catch합니다.

설명

CreateInstance<T>() 제네릭 메서드는 컴파일러에서 형식 매개 변수로 지정된 형식의 인스턴스화를 구현하는 데 사용됩니다. 예를 들어 다음 제네릭 메서드에서 new T() 구현(C++의gcnew T())은 CreateInstance<T>() 제네릭 메서드를 사용합니다.

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
let factory<'T when 'T : (new: unit -> 'T)> =
    new 'T()
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

일반적으로 애플리케이션 코드에서는 CreateInstance<T>() 제네릭 메서드를 사용할 수 없습니다. 컴파일 시 형식을 알고 있어야 하기 때문입니다. 형식이 컴파일 시간에 알려진 경우 일반 인스턴스화 구문을 사용할 수 있습니다(C#의new 연산자, Visual Basic의 New, C++의 gcnew). 컴파일 시간에 형식을 알 수 없는 경우 CreateInstance제네릭이 아닌 오버로드를 호출할 수 있습니다.

CreateInstance 제네릭이 아닌 오버로드가 이미 런타임에 바인딩된 생성자 확인을 제공하므로 인수 목록을 사용하는 CreateInstance<T>() 제네릭 메서드의 오버로드가 없습니다.

적용 대상