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이라는 형식이 검색된 어셈블리의 이름입니다. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

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

ignoreCase
Boolean

typeName에 대한 검색에서 대/소문자를 구분하지 않도록 지정하려면 true이고, 대/소문자를 구분하도록 지정하려면 false입니다.

bindingAttr
BindingFlags

typeName 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.

binder
Binder

bindingAttrargs을(를) 사용하여 typeName 생성자를 식별하고 검색하는 개체입니다. bindernull이면 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수와 수, 순서 및 유형 면에서 일치하는 인수의 배열입니다. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

typeName 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.

activationAttributes
Object[]

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

securityAttributes
Evidence

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

반환

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

특성

예외

domain 또는 typeNamenull인 경우

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

assemblyName에서 typename을 찾을 수 없습니다.

assemblyName을 찾을 수 없습니다.

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

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

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.

또는

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

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

또는

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다. .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이라는 형식이 검색된 어셈블리의 이름입니다. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

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

ignoreCase
Boolean

typeName에 대한 검색에서 대/소문자를 구분하지 않도록 지정하려면 true이고, 대/소문자를 구분하도록 지정하려면 false입니다.

bindingAttr
BindingFlags

typeName 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.

binder
Binder

bindingAttrargs을(를) 사용하여 typeName 생성자를 식별하고 검색하는 개체입니다. bindernull이면 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수와 수, 순서 및 유형 면에서 일치하는 인수의 배열입니다. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

typeName 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.

activationAttributes
Object[]

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

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

반환

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

특성

예외

domain 또는 typeNamenull인 경우

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

assemblyName에서 typename을 찾을 수 없습니다.

assemblyName을 찾을 수 없습니다.

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

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

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.

또는

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

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

또는

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다. .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이라는 형식이 검색된 어셈블리의 이름입니다. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

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

ignoreCase
Boolean

typeName에 대한 검색에서 대/소문자를 구분하지 않도록 지정하려면 true이고, 대/소문자를 구분하도록 지정하려면 false입니다.

bindingAttr
BindingFlags

typeName 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.

binder
Binder

bindingAttrargs을(를) 사용하여 typeName 생성자를 식별하고 검색하는 개체입니다. bindernull이면 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수와 수, 순서 및 유형 면에서 일치하는 인수의 배열입니다. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

typeName 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.

activationAttributes
Object[]

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

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

반환

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

예외

typeName이(가) null인 경우

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

assemblyName에서 typename을 찾을 수 없습니다.

assemblyName을 찾을 수 없습니다.

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

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

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.

또는

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

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

또는

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

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

또는

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.

설명

반환 값을 래프 해제하는 데 사용합니다 ObjectHandle.Unwrap .

참고

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 플래그가 부여 ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess 된 경우 및 비공개 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 비공개 형식 및 멤버를 만들 수 있습니다. (리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .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이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.

binder
Binder

bindingAttrargs을(를) 사용하여 type 생성자를 식별하고 검색하는 개체입니다. bindernull이면 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수와 수, 순서 및 유형 면에서 일치하는 인수의 배열입니다. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

type 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.

activationAttributes
Object[]

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

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

반환

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

예외

type이(가) null인 경우

type이(가) RuntimeType가 아닌 경우

또는

type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.

typeTypeBuilder일 수 없습니다.

또는

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.

또는

type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.

또는

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

호출 중인 생성자가 예외를 발생시킵니다.

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

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

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

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

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

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

설명

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

참고

.NET Framework 2.0부터 이 메서드는 호출자가 플래그를 사용하여 부여된 ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess 경우 및 비공개 형식 및 멤버의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비공용 형식 및 멤버에 액세스하는 데 사용할 수 있습니다. (리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .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이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.

binder
Binder

bindingAttrargs을(를) 사용하여 type 생성자를 식별하고 검색하는 개체입니다. bindernull이면 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수와 수, 순서 및 유형 면에서 일치하는 인수의 배열입니다. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

type 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.

반환

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

예외

type이(가) null인 경우

type이(가) RuntimeType가 아닌 경우

또는

type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.

typeTypeBuilder일 수 없습니다.

또는

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.

또는

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

호출 중인 생성자가 예외를 발생시킵니다.

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

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

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

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

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

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

설명

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

참고

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

반환

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

예외

type이(가) null인 경우

type이(가) RuntimeType가 아닌 경우

또는

type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.

typeTypeBuilder일 수 없습니다.

또는

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.

또는

type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.

또는

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

호출 중인 생성자가 예외를 발생시킵니다.

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

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

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

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

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이라는 형식이 검색된 어셈블리의 이름입니다. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

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

activationAttributes
Object[]

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

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

반환

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

예외

typeName이(가) null인 경우

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

assemblyName에서 typename을 찾을 수 없습니다.

assemblyName을 찾을 수 없습니다.

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

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

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.

또는

activationAttributesUrlAttribute

배열이 아닌 경우

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

또는

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

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

또는

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.

호출된 생성자가 예외를 throw하는 경우

또는

activationAttributes에 지정된 대상에서 원격 활성화를 시도할 때 오류가 발생한 경우

설명

반환 값을 래프 해제하는 데 사용합니다 ObjectHandle.Unwrap .

참고

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 플래그가 부여된 ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess 경우 및 게시되지 않은 형식의 부여 집합이 호출자의 권한 부여 집합 또는 하위 집합으로 제한되는 경우 비공용 형식을 만들 수 있습니다. (리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .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이라는 형식이 검색된 어셈블리의 이름입니다. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

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

ignoreCase
Boolean

typeName에 대한 검색에서 대/소문자를 구분하지 않도록 지정하려면 true이고, 대/소문자를 구분하도록 지정하려면 false입니다.

bindingAttr
BindingFlags

typeName 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.

binder
Binder

bindingAttrargs을(를) 사용하여 typeName 생성자를 식별하고 검색하는 개체입니다. bindernull이면 기본 바인더가 사용됩니다.

args
Object[]

호출할 생성자의 매개 변수와 수, 순서 및 유형 면에서 일치하는 인수의 배열입니다. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

culture
CultureInfo

typeName 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.

activationAttributes
Object[]

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

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

securityInfo
Evidence

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

반환

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

특성

예외

typeName이(가) null인 경우

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

assemblyName에서 typename을 찾을 수 없습니다.

assemblyName을 찾을 수 없습니다.

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

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

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.

또는

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

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

또는

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

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

또는

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.

설명

반환 값을 래프 해제하는 데 사용합니다 ObjectHandle.Unwrap .

참고

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 플래그가 부여된 ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess 경우 및 비공용 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 비공개 형식 및 멤버를 만들 수 있습니다. (리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .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이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.

반환

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

예외

type이(가) null인 경우

type이(가) RuntimeType가 아닌 경우

또는

type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.

typeTypeBuilder일 수 없습니다.

또는

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.

또는

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

호출 중인 생성자가 예외를 발생시킵니다.

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

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

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

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

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

참고: Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 기본 클래스 예외 를 MissingMemberException대신 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부터 이 메서드를 사용하여 호출자에게 플래그를 부여하고 ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess 비공용 형식을 포함하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 하위 집합으로 제한되는 경우 비공용 형식에 액세스할 수 있습니다. (리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .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 또는 public이 아닌 매개 변수가 없는 생성자가 일치할 수 있으면 true이고, public 매개 변수가 없는 생성자만 일치할 수 있으면 false입니다.

반환

새로 만든 개체 또는 null 인스턴스에 대한 Nullable<T> 참조입니다.

예외

type이(가) null인 경우

type이(가) RuntimeType가 아닌 경우

또는

type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.

typeTypeBuilder일 수 없습니다.

또는

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.

호출 중인 생성자가 예외를 발생시킵니다.

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

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

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

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

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

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

설명

참고

.NET Framework 2.0부터 이 메서드는 호출자가 플래그를 사용하여 부여된 ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비공용 형식 및 멤버에 액세스하는 데 사용할 수 있습니다. (리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .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이라는 형식이 검색된 어셈블리의 이름입니다. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

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

반환

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

예외

typeName이(가) null인 경우

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

assemblyName에서 typename을 찾을 수 없습니다.

assemblyName을 찾을 수 없습니다.

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

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

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

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

또는

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다. .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 개체의 Name 속성에 Person 값을 할당하고 해당 값을 표시합니다.

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 는 다음 중 하나일 수 있습니다.

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

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

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

참고

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 플래그를 부여하고 ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess 비공용 형식을 포함하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비공용 형식을 만들 수 있습니다. (리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .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[]

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

반환

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

설명

메서드를 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

만들 개체의 유형입니다.

반환

새로 만든 개체 또는 null 인스턴스에 대한 Nullable<T> 참조입니다.

예외

type이(가) null인 경우

type이(가) RuntimeType가 아닌 경우

또는

type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.

typeTypeBuilder일 수 없습니다.

또는

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

또는

type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.

호출 중인 생성자가 예외를 발생시킵니다.

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

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

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

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

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

참고: Windows 스토어 앱 또는 이식 가능한 클래스 라이브러리용 .NET에서 기본 클래스 예외 를 MissingMemberException대신 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

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

반환

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

설명

메서드를 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이라는 형식이 검색된 어셈블리의 이름입니다. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.

typeName
String

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

반환

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

특성

예외

typeName 또는 domainnull인 경우

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

assemblyName에서 typename을 찾을 수 없습니다.

assemblyName을 찾을 수 없습니다.

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

추상 형식의 인스턴스를 만들 수 없는 경우

또는

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

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.

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

또는

CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다. .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

새로 만든 개체 또는 null 인스턴스에 대한 Nullable<T> 참조입니다.

예외

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

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

설명

CreateInstance<T>() 제네릭 메서드는 컴파일러에서 형식 매개 변수로 지정된 형식의 인스턴스화를 구현하는 데 사용됩니다. 예를 들어 다음 제네릭 메서드에서 의 구현 new T() (gcnew T() C++)은 제네릭 메서드를 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>() 애플리케이션에서 제네릭 메서드 코드를 하므로 컴파일 타임에 형식을 알 수 있어야 합니다. 형식이 컴파일 시간에 알려진 경우 일반 인스턴스화 구문을 사용할 수 있습니다(new C#의 연산자, Visual Basic의 Newgcnew 경우 C++). 컴파일 시간에 형식을 알 수 없는 경우 의 CreateInstance제네릭이 아닌 오버로드를 호출할 수 있습니다.

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

적용 대상