Activator.CreateInstance 메서드

정의

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

오버로드

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

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

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

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

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

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

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

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(String, String, Object[])

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

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

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(Type, Object[])

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean)

해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(String, String)

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(ActivationContext, String[])

지정된 사용자 지정 활성화 데이터로 활성화되며 지정된 ActivationContext 개체에서 지정하는 형식의 인스턴스를 만듭니다.Creates an instance of the type that is designated by the specified ActivationContext object and activated with the specified custom activation data.

CreateInstance(Type)

해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(ActivationContext)

지정된 ActivationContext 개체에서 지정하는 형식의 인스턴스를 만듭니다.Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(AppDomain, String, String)

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and parameterless constructor.

CreateInstance<T>()

매개 변수가 없는 생성자를 사용하여 지정된 제네릭 형식 매개 변수로 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

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

경고

이 API는 현재 사용되지 않습니다.

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

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);
[System.Security.SecurityCritical]
[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 (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

매개 변수

domain
AppDomain

typeName이라는 형식이 만들어지는 도메인입니다.The domain where the type named typeName is created.

assemblyName
String

typeName이라는 형식이 검색된 어셈블리의 이름입니다.The name of the assembly where the type named typeName is sought. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.If assemblyName is null, the executing assembly is searched.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.The fully qualified name of the type to create an instance of.

ignoreCase
Boolean

typeName에 대한 검색에서 대/소문자를 구분하지 않도록 지정하려면 true이고, 대/소문자를 구분하도록 지정하려면 false입니다.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

typeName 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다.A combination of zero or more bit flags that affect the search for the typeName constructor. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

bindingAttrargs을(를) 사용하여 typeName 생성자를 식별하고 검색하는 개체입니다.An object that uses bindingAttr and args to seek and identify the typeName constructor. bindernull이면 기본 바인더가 사용됩니다.If binder is null, the default binder is used.

args
Object[]

호출할 생성자의 매개 변수와 번호, 순서 및 형식이 일치하는 인수의 배열입니다.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

typeName 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

활성화할 수 있는 하나 이상의 특성으로 이루어진 배열입니다.An array of one or more attributes that can participate in activation. 일반적으로 단일 UrlAttribute 개체가 포함된 배열입니다.This is typically an array that contains a single UrlAttribute object. UrlAttribute는 원격 개체를 활성화하는 데 필요한 URL을 지정합니다.The UrlAttribute specifies the URL that is required to activate a remote object.

securityAttributes
Evidence

보안 정책을 결정하고 코드 권한을 부여하는 데 사용되는 정보입니다.Information used to make security policy decisions and grant code permissions.

반환

새로 만들어진 인스턴스에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created instance.

특성

예외

domain 또는 typeNamenull인 경우domain or typeName is null.

일치하는 생성자를 찾을 수 없습니다.No matching constructor was found.

assemblyName에서 typename을 찾을 수 없습니다.typename was not found in assemblyName.

assemblyName을 찾을 수 없습니다.assemblyName was not found.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

또는-or- args와 가장 일치하는 생성자에 varargs 인수가 있습니다.The constructor that best matches args has varargs arguments.

assemblyName는 유효한 어셈블리가 아닙니다.assemblyName is not a valid assembly.

또는-or- CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.An assembly or module was loaded twice with two different evidences.

또는-or-

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.The assembly name or code base is invalid.

설명

메서드는 값이 없는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances with no value.

사용 하 여 CreateInstance 호스트 제한 된 보안 권한을 가진 애플리케이션 도메인에서 코드를 실행 해야 할 경우.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

ObjectHandle.Unwrap를 사용 하 여 반환 값의 래핑을 해제 합니다.Use ObjectHandle.Unwrap to unwrap the return value.

참고

이 메서드는 SecurityAction.LinkDemand를 사용 하 여 직접 실행 호출자에 게 완전 신뢰를 요구 합니다.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
모든 형식 멤버에 대 한 작업을 호출할 수 있습니다.for the ability to invoke operations on all type members. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

SecurityCriticalAttribute
직접 실행 호출자에 대 한 완전 신뢰가 필요 합니다.requires full trust for the immediate caller. 이 멤버는 부분적으로 신뢰할 수 있는 또는 투명 코드에서 사용할 수 없습니다.This member cannot be used by partially trusted or transparent code.

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

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

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);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

매개 변수

domain
AppDomain

typeName이라는 형식이 만들어지는 도메인입니다.The domain where the type named typeName is created.

assemblyName
String

typeName이라는 형식이 검색된 어셈블리의 이름입니다.The name of the assembly where the type named typeName is sought. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.If assemblyName is null, the executing assembly is searched.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.The fully qualified name of the type to create an instance of.

ignoreCase
Boolean

typeName에 대한 검색에서 대/소문자를 구분하지 않도록 지정하려면 true이고, 대/소문자를 구분하도록 지정하려면 false입니다.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

typeName 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다.A combination of zero or more bit flags that affect the search for the typeName constructor. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

bindingAttrargs을(를) 사용하여 typeName 생성자를 식별하고 검색하는 개체입니다.An object that uses bindingAttr and args to seek and identify the typeName constructor. bindernull이면 기본 바인더가 사용됩니다.If binder is null, the default binder is used.

args
Object[]

호출할 생성자의 매개 변수와 번호, 순서 및 형식이 일치하는 인수의 배열입니다.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

typeName 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

활성화할 수 있는 하나 이상의 특성으로 이루어진 배열입니다.An array of one or more attributes that can participate in activation. 일반적으로 원격 개체를 활성화 하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

이 매개 변수는 클라이언트 활성 개체와 관련되어 있습니다.This parameter is related to client-activated objects. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새로운 개발에는 권장되지 않는 레거시 기술입니다.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 분산된 애플리케이션은 Windows Communication Foundation을 사용해야 합니다.Distributed applications should instead use Windows Communication Foundation.

반환

새로 만들어진 인스턴스에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created instance.

특성

예외

domain 또는 typeNamenull인 경우domain or typeName is null.

일치하는 생성자를 찾을 수 없습니다.No matching constructor was found.

assemblyName에서 typename을 찾을 수 없습니다.typename was not found in assemblyName.

assemblyName을 찾을 수 없습니다.assemblyName was not found.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

또는-or- args와 가장 일치하는 생성자에 varargs 인수가 있습니다.The constructor that best matches args has varargs arguments.

assemblyName는 유효한 어셈블리가 아닙니다.assemblyName is not a valid assembly.

또는-or- CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.An assembly or module was loaded twice with two different evidences.

또는-or-

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.The assembly name or code base is invalid.

설명

사용 하 여 CreateInstance 호스트 제한 된 보안 권한을 가진 애플리케이션 도메인에서 코드를 실행 해야 할 경우.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

메서드는 값이 없는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances with no value.

ObjectHandle.Unwrap를 사용 하 여 반환 값의 래핑을 해제 합니다.Use ObjectHandle.Unwrap to unwrap the return value.

참고

이 메서드는 SecurityAction.LinkDemand를 사용 하 여 직접 실행 호출자에 게 완전 신뢰를 요구 합니다.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

보안

SecurityCriticalAttribute
직접 실행 호출자에 대 한 완전 신뢰가 필요 합니다.requires full trust for the immediate caller. 이 멤버는 부분적으로 신뢰할 수 있는 또는 투명 코드에서 사용할 수 없습니다.This member cannot be used by partially trusted or transparent code.

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
모든 형식 멤버에 대 한 작업을 호출할 수 있습니다.for the ability to invoke operations on all type members. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

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

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

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);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

매개 변수

assemblyName
String

typeName이라는 형식이 검색된 어셈블리의 이름입니다.The name of the assembly where the type named typeName is sought. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.If assemblyName is null, the executing assembly is searched.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.The fully qualified name of the type to create an instance of.

ignoreCase
Boolean

typeName에 대한 검색에서 대/소문자를 구분하지 않도록 지정하려면 true이고, 대/소문자를 구분하도록 지정하려면 false입니다.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

typeName 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다.A combination of zero or more bit flags that affect the search for the typeName constructor. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

bindingAttrargs을(를) 사용하여 typeName 생성자를 식별하고 검색하는 개체입니다.An object that uses bindingAttr and args to seek and identify the typeName constructor. bindernull이면 기본 바인더가 사용됩니다.If binder is null, the default binder is used.

args
Object[]

호출할 생성자의 매개 변수와 번호, 순서 및 형식이 일치하는 인수의 배열입니다.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

typeName 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

활성화할 수 있는 하나 이상의 특성으로 이루어진 배열입니다.An array of one or more attributes that can participate in activation. 일반적으로 원격 개체를 활성화 하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

이 매개 변수는 클라이언트 활성 개체와 관련되어 있습니다.This parameter is related to client-activated objects. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새로운 개발에는 권장되지 않는 레거시 기술입니다.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 분산된 애플리케이션은 Windows Communication Foundation을 사용해야 합니다.Distributed applications should instead use Windows Communication Foundation.

반환

새로 만들어진 인스턴스에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created instance.

예외

typeName이(가) null인 경우typeName is null.

일치하는 생성자를 찾을 수 없습니다.No matching constructor was found.

assemblyName에서 typename을 찾을 수 없습니다.typename was not found in assemblyName.

assemblyName을 찾을 수 없습니다.assemblyName was not found.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

또는-or- args와 가장 일치하는 생성자에 varargs 인수가 있습니다.The constructor that best matches args has varargs arguments.

assemblyName는 유효한 어셈블리가 아닙니다.assemblyName is not a valid assembly.

또는-or- CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.An assembly or module was loaded twice with two different evidences.

또는-or-

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.The assembly name or code base is invalid.

설명

ObjectHandle.Unwrap를 사용 하 여 반환 값의 래핑을 해제 합니다.Use ObjectHandle.Unwrap to unwrap the return value.

메서드는 값이 없는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances with no value.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자가 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 여 ReflectionPermission 권한을 부여 하 고 public이 아닌 형식 및 멤버를 포함 하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 하위 집합으로 제한 되는 경우이 메서드를 사용 하 여 public이 아닌 형식과 멤버를 만들 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식 및 해당 권한 부여 집합에 관계 없이 멤버에 액세스 합니다.for accessing nonpublic types and members regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

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

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj

매개 변수

type
Type

만들 개체의 형식입니다.The type of object to create.

bindingAttr
BindingFlags

type 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다.A combination of zero or more bit flags that affect the search for the type constructor. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

bindingAttrargs을(를) 사용하여 type 생성자를 식별하고 검색하는 개체입니다.An object that uses bindingAttr and args to seek and identify the type constructor. bindernull이면 기본 바인더가 사용됩니다.If binder is null, the default binder is used.

args
Object[]

호출할 생성자의 매개 변수와 번호, 순서 및 형식이 일치하는 인수의 배열입니다.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

type 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다.Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

활성화할 수 있는 하나 이상의 특성으로 이루어진 배열입니다.An array of one or more attributes that can participate in activation. 일반적으로 원격 개체를 활성화 하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

이 매개 변수는 클라이언트 활성 개체와 관련되어 있습니다.This parameter is related to client-activated objects. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새로운 개발에는 권장되지 않는 레거시 기술입니다.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 분산된 애플리케이션은 Windows Communication Foundation을 사용해야 합니다.Distributed applications should instead use Windows Communication Foundation.

반환

새로 만든 개체에 대한 참조입니다.A reference to the newly created object.

예외

type이(가) null인 경우type is null.

type이(가) RuntimeType가 아닌 경우type is not a RuntimeType.

또는-or- type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder일 수 없습니다.type cannot be a TypeBuilder.

또는-or- TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

또는-or- type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.The assembly that contains type is a dynamic assembly that was created with Save.

또는-or- args와 가장 일치하는 생성자에 varargs 인수가 있습니다.The constructor that best matches args has varargs arguments.

호출 중인 생성자가 예외를 발생시킵니다.The constructor being called throws an exception.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

일치하는 생성자를 찾을 수 없습니다.No matching constructor was found.

type이 COM 개체이지만 형식을 가져오는 데 사용된 클래스 식별자가 유효하지 않거나 식별된 클래스가 등록되지 않았습니다.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type이 올바른 형식이 아닙니다.type is not a valid type.

설명

호출할 생성자는 지정 된 바인더와 바인딩 특성의 제약 조건에 따라 지정 된 인수 목록과 가장 구체적으로 일치를 제공 해야 합니다.The constructor to be invoked must provide the most specific match with the specified argument list under the constraints of the specified binder and binding attributes.

메서드는 값이 없는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances with no value.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자가 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 여 ReflectionPermission 권한을 부여 하 고 public이 아닌 형식 및 멤버의 권한 부여 집합이 호출자의 권한 부여 집합이 나 그 하위 집합으로 제한 되는 경우이 메서드를 사용 하 여 public이 아닌 형식과 멤버에 액세스할 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
증명 정보를 제공 합니다.for supplying evidence. 연결 된 열거형: ControlEvidenceAssociated enumeration: ControlEvidence

ReflectionPermission
public이 아닌 형식 및 해당 권한 부여 집합에 관계 없이 멤버에 액세스 합니다.for accessing nonpublic types and members regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

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

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj

매개 변수

type
Type

만들 개체의 형식입니다.The type of object to create.

bindingAttr
BindingFlags

type 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다.A combination of zero or more bit flags that affect the search for the type constructor. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

bindingAttrargs을(를) 사용하여 type 생성자를 식별하고 검색하는 개체입니다.An object that uses bindingAttr and args to seek and identify the type constructor. bindernull이면 기본 바인더가 사용됩니다.If binder is null, the default binder is used.

args
Object[]

호출할 생성자의 매개 변수와 번호, 순서 및 형식이 일치하는 인수의 배열입니다.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

type 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다.Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.If culture is null, the CultureInfo for the current thread is used.

반환

새로 만든 개체에 대한 참조입니다.A reference to the newly created object.

예외

type이(가) null인 경우type is null.

type이(가) RuntimeType가 아닌 경우type is not a RuntimeType.

또는-or- type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder일 수 없습니다.type cannot be a TypeBuilder.

또는-or- TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.The assembly that contains type is a dynamic assembly that was created with Save.

또는-or- args와 가장 일치하는 생성자에 varargs 인수가 있습니다.The constructor that best matches args has varargs arguments.

호출 중인 생성자가 예외를 발생시킵니다.The constructor being called throws an exception.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

일치하는 생성자를 찾을 수 없습니다.No matching constructor was found.

type이 COM 개체이지만 형식을 가져오는 데 사용된 클래스 식별자가 유효하지 않거나 식별된 클래스가 등록되지 않았습니다.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type이 올바른 형식이 아닙니다.type is not a valid type.

설명

호출할 생성자는 지정 된 바인더와 바인딩 특성의 제약 조건에 따라 지정 된 인수 목록과 가장 구체적으로 일치를 제공 해야 합니다.The constructor to be invoked must provide the most specific match with the specified argument list under the constraints of the specified binder and binding attributes.

메서드는 값이 없는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances with no value.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자가 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 여 ReflectionPermission 권한을 부여 하 고 public이 아닌 형식 및 멤버를 포함 하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 하위 집합으로 제한 되는 경우이 메서드를 사용 하 여 public이 아닌 형식과 멤버에 액세스할 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식 및 해당 권한 부여 집합에 관계 없이 멤버에 액세스 합니다.for accessing nonpublic types and members regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

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

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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);
static member CreateInstance : Type * obj[] * obj[] -> obj

매개 변수

type
Type

만들 개체의 형식입니다.The type of object to create.

args
Object[]

호출할 생성자의 매개 변수와 번호, 순서 및 형식이 일치하는 인수의 배열입니다.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

activationAttributes
Object[]

활성화할 수 있는 하나 이상의 특성으로 이루어진 배열입니다.An array of one or more attributes that can participate in activation. 일반적으로 원격 개체를 활성화 하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

이 매개 변수는 클라이언트 활성 개체와 관련되어 있습니다.This parameter is related to client-activated objects. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새로운 개발에는 권장되지 않는 레거시 기술입니다.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 분산된 애플리케이션은 Windows Communication Foundation을 사용해야 합니다.Distributed applications should instead use Windows Communication Foundation.

반환

새로 만든 개체에 대한 참조입니다.A reference to the newly created object.

예외

type이(가) null인 경우type is null.

type이(가) RuntimeType가 아닌 경우type is not a RuntimeType.

또는-or- type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder일 수 없습니다.type cannot be a TypeBuilder.

또는-or- TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

또는-or- type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.The assembly that contains type is a dynamic assembly that was created with Save.

또는-or- args와 가장 일치하는 생성자에 varargs 인수가 있습니다.The constructor that best matches args has varargs arguments.

호출 중인 생성자가 예외를 발생시킵니다.The constructor being called throws an exception.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

일치하는 public 생성자를 찾을 수 없습니다.No matching public constructor was found.

type이 COM 개체이지만 형식을 가져오는 데 사용된 클래스 식별자가 유효하지 않거나 식별된 클래스가 등록되지 않았습니다.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type이 올바른 형식이 아닙니다.type is not a valid type.

설명

호출할 생성자에 액세스할 수 있어야 하 고 지정 된 인수 목록과 가장 구체적으로 일치를 제공 해야 합니다.The constructor to be invoked must be accessible and must provide the most specific match with the specified argument list.

메서드는 값이 없는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances with no value.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자에 게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 ReflectionPermission 권한이 부여 되 고 public이 아닌 형식을 포함 하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합이 나 그 하위 집합으로 제한 된 경우에는이 메서드를 사용 하 여 public이 아닌 형식에 액세스할 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식에 관계 없이 해당 권한 부여 집합에 액세스 합니다.for accessing nonpublic types regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Object[])

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

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);
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이라는 형식이 검색된 어셈블리의 이름입니다.The name of the assembly where the type named typeName is sought. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.If assemblyName is null, the executing assembly is searched.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.The fully qualified name of the type to create an instance of.

activationAttributes
Object[]

활성화할 수 있는 하나 이상의 특성으로 이루어진 배열입니다.An array of one or more attributes that can participate in activation. 일반적으로 원격 개체를 활성화 하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

이 매개 변수는 클라이언트 활성 개체와 관련되어 있습니다.This parameter is related to client-activated objects. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새로운 개발에는 권장되지 않는 레거시 기술입니다.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 분산된 애플리케이션은 Windows Communication Foundation을 사용해야 합니다.Distributed applications should instead use Windows Communication Foundation.

반환

새로 만들어진 인스턴스에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created instance.

예외

typeName이(가) null인 경우typeName is null.

일치하는 public 생성자를 찾을 수 없습니다.No matching public constructor was found.

assemblyName에서 typename을 찾을 수 없습니다.typename was not found in assemblyName.

assemblyName을 찾을 수 없습니다.assemblyName was not found.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

또는-or- activationAttributesUrlAttributeactivationAttributes is not a UrlAttribute

배열이 아닌 경우array.

assemblyName는 유효한 어셈블리가 아닙니다.assemblyName is not a valid assembly.

또는-or- CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.An assembly or module was loaded twice with two different evidences.

또는-or-

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.The assembly name or code base is invalid.

activationAttributes에 지정된 대상에서 원격 활성화를 시도할 때 오류가 발생한 경우An error occurred when attempting remote activation in a target specified in activationAttributes.

설명

메서드는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances.

ObjectHandle.Unwrap를 사용 하 여 반환 값의 래핑을 해제 합니다.Use ObjectHandle.Unwrap to unwrap the return value.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자에 게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 ReflectionPermission 권한이 부여 되 고 public이 아닌 형식의 권한 부여 집합이 호출자의 권한 부여 집합이 나 그 하위 집합으로 제한 된 경우에는이 메서드를 사용 하 여 public이 아닌 형식을 만들 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the nonpublic types is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식에 관계 없이 해당 권한 부여 집합에 액세스 합니다.for accessing nonpublic types regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

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

경고

이 API는 현재 사용되지 않습니다.

명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

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);
[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

매개 변수

assemblyName
String

typeName이라는 형식이 검색된 어셈블리의 이름입니다.The name of the assembly where the type named typeName is sought. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.If assemblyName is null, the executing assembly is searched.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.The fully qualified name of the type to create an instance of.

ignoreCase
Boolean

typeName에 대한 검색에서 대/소문자를 구분하지 않도록 지정하려면 true이고, 대/소문자를 구분하도록 지정하려면 false입니다.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

typeName 생성자 검색에 영향을 미치는 0 또는 그 이상의 비트 플래그 조합입니다.A combination of zero or more bit flags that affect the search for the typeName constructor. bindingAttr가 0이면 대/소문자를 구분한 public 생성자 검색이 수행됩니다.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

bindingAttrargs을(를) 사용하여 typeName 생성자를 식별하고 검색하는 개체입니다.An object that uses bindingAttr and args to seek and identify the typeName constructor. bindernull이면 기본 바인더가 사용됩니다.If binder is null, the default binder is used.

args
Object[]

호출할 생성자의 매개 변수와 번호, 순서 및 형식이 일치하는 인수의 배열입니다.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

typeName 생성자에 대해 선언된 공식적인 형식에 args를 강제로 적용하는 것을 제어하는 문화권별 정보입니다.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

활성화할 수 있는 하나 이상의 특성으로 이루어진 배열입니다.An array of one or more attributes that can participate in activation. 일반적으로 원격 개체를 활성화 하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

이 매개 변수는 클라이언트 활성 개체와 관련되어 있습니다.This parameter is related to client-activated objects. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새로운 개발에는 권장되지 않는 레거시 기술입니다.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 분산된 애플리케이션은 Windows Communication Foundation을 사용해야 합니다.Distributed applications should instead use Windows Communication Foundation.

securityInfo
Evidence

보안 정책을 결정하고 코드 권한을 부여하는 데 사용되는 정보입니다.Information used to make security policy decisions and grant code permissions.

반환

새로 만들어진 인스턴스에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created instance.

특성

예외

typeName이(가) null인 경우typeName is null.

일치하는 생성자를 찾을 수 없습니다.No matching constructor was found.

assemblyName에서 typename을 찾을 수 없습니다.typename was not found in assemblyName.

assemblyName을 찾을 수 없습니다.assemblyName was not found.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- activationAttributes가 빈 배열이 아니므로 생성될 형식이 MarshalByRefObject에서 파생되지 않습니다.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

또는-or- args와 가장 일치하는 생성자에 varargs 인수가 있습니다.The constructor that best matches args has varargs arguments.

assemblyName는 유효한 어셈블리가 아닙니다.assemblyName is not a valid assembly.

또는-or- CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.An assembly or module was loaded twice with two different evidences.

또는-or-

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.The assembly name or code base is invalid.

설명

메서드는 값이 없는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances with no value.

ObjectHandle.Unwrap를 사용 하 여 반환 값의 래핑을 해제 합니다.Use ObjectHandle.Unwrap to unwrap the return value.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자가 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 여 ReflectionPermission 권한을 부여 하 고 public이 아닌 형식 및 멤버를 포함 하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 하위 집합으로 제한 되는 경우이 메서드를 사용 하 여 public이 아닌 형식과 멤버를 만들 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식 및 해당 권한 부여 집합에 관계 없이 멤버에 액세스 합니다.for accessing nonpublic types and members regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Object[])

지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

매개 변수

type
Type

만들 개체의 형식입니다.The type of object to create.

args
Object[]

호출할 생성자의 매개 변수와 번호, 순서 및 형식이 일치하는 인수의 배열입니다.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args이(가) 빈 배열이거나 null이면 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

반환

새로 만든 개체에 대한 참조입니다.A reference to the newly created object.

예외

type이(가) null인 경우type is null.

type이(가) RuntimeType가 아닌 경우type is not a RuntimeType.

또는-or- type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder일 수 없습니다.type cannot be a TypeBuilder.

또는-or- TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.The assembly that contains type is a dynamic assembly that was created with Save.

또는-or- args와 가장 일치하는 생성자에 varargs 인수가 있습니다.The constructor that best matches args has varargs arguments.

호출 중인 생성자가 예외를 발생시킵니다.The constructor being called throws an exception.

Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 대신 기본 클래스 예외 MemberAccessException을 catch합니다.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 대신 기본 클래스 예외 MissingMemberException을 catch합니다.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

일치하는 public 생성자를 찾을 수 없습니다.No matching public constructor was found.

type이 COM 개체이지만 형식을 가져오는 데 사용된 클래스 식별자가 유효하지 않거나 식별된 클래스가 등록되지 않았습니다.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type이 올바른 형식이 아닙니다.type is not a valid type.

예제

다음 예제에서는 CreateInstance(Type, Object[]) 메서드를 호출 하 여 String 개체를 만듭니다.The following example calls the CreateInstance(Type, Object[]) method to create a String object. String.String(Char[], Int32, Int32) 생성자를 호출 하 여 14 번째 위치에서 시작 하는 문자 배열에서 10 개의 요소가 포함 된 문자열을 인스턴스화합니다.It calls the String.String(Char[], Int32, Int32) constructor to instantiate a string that contains ten elements from a character array starting at the fourteenth position.

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
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 생성자로 전달 되는 인수를 포함 하는 가변 배열을 만듭니다.The following example creates a jagged array whose elements are arguments to be passed to a String constructor. 그런 다음이 예제에서는 각 배열을 CreateInstance(Type, Object[]) 메서드에 전달 하 여 적절 한 문자열 생성자를 호출 합니다.The example then passes each array to the CreateInstance(Type, Object[]) method to invoke the appropriate string constructor.

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
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

설명

호출할 생성자에 액세스할 수 있어야 하 고 지정 된 인수 목록과 가장 구체적으로 일치를 제공 해야 합니다.The constructor to be invoked must be accessible and must provide the most specific match with the specified argument list.

메서드는 값이 없는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances with no value.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자에 게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 ReflectionPermission 권한이 부여 되 고 public이 아닌 형식을 포함 하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합이 나 그 하위 집합으로 제한 된 경우에는이 메서드를 사용 하 여 public이 아닌 형식에 액세스할 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식에 관계 없이 해당 권한 부여 집합에 액세스 합니다.for accessing nonpublic types regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Boolean)

해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using that type's parameterless constructor.

public:
 static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj

매개 변수

type
Type

만들 개체의 형식입니다.The type of object to create.

nonPublic
Boolean

public 또는 public이 아닌 매개 변수가 없는 생성자가 일치할 수 있으면 true이고, public 매개 변수가 없는 생성자만 일치할 수 있으면 false입니다.true if a public or nonpublic parameterless constructor can match; false if only a public parameterless constructor can match.

반환

새로 만든 개체에 대한 참조입니다.A reference to the newly created object.

예외

type이(가) null인 경우type is null.

type이(가) RuntimeType가 아닌 경우type is not a RuntimeType.

또는-or- type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder일 수 없습니다.type cannot be a TypeBuilder.

또는-or- TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.The assembly that contains type is a dynamic assembly that was created with Save.

호출 중인 생성자가 예외를 발생시킵니다.The constructor being called throws an exception.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

일치하는 public 생성자를 찾을 수 없습니다.No matching public constructor was found.

type이 COM 개체이지만 형식을 가져오는 데 사용된 클래스 식별자가 유효하지 않거나 식별된 클래스가 등록되지 않았습니다.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type이 올바른 형식이 아닙니다.type is not a valid type.

설명

메서드는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자가 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 여 ReflectionPermission 권한을 부여 하 고 public이 아닌 형식 및 멤버를 포함 하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 하위 집합으로 제한 되는 경우이 메서드를 사용 하 여 public이 아닌 형식과 멤버에 액세스할 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식 및 해당 권한 부여 집합에 관계 없이 멤버에 액세스 합니다.for accessing nonpublic types and members regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String)

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::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이라는 형식이 검색된 어셈블리의 이름입니다.The name of the assembly where the type named typeName is sought. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.If assemblyName is null, the executing assembly is searched.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.The fully qualified name of the type to create an instance of.

반환

새로 만들어진 인스턴스에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created instance.

예외

typeName이(가) null인 경우typeName is null.

일치하는 public 생성자를 찾을 수 없습니다.No matching public constructor was found.

assemblyName에서 typename을 찾을 수 없습니다.typename was not found in assemblyName.

assemblyName을 찾을 수 없습니다.assemblyName was not found.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.You cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

assemblyName는 유효한 어셈블리가 아닙니다.assemblyName is not a valid assembly.

또는-or- CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.An assembly or module was loaded twice with two different evidences.

또는-or-

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.The assembly name or code base is invalid.

예제

다음 예제에서는 PersonInfo라는 어셈블리에 Person 라는 클래스를 정의 합니다.The following example defines a class named Person in an assembly named PersonInfo. Person 클래스에는 두 개의 생성자가 있으며, 그 중 하나는 매개 변수가 없는 생성자입니다.Note that the Person class has two constructors, one of which is parameterless.

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;
   }
}
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 클래스를 인스턴스화합니다.The following example calls the CreateInstance(String, String) method to instantiate the Person class. 프로젝트에 추가할 PersonInfo.dll에 대 한 참조가 필요 합니다.It requires a reference to PersonInfo.dll to be added to the project. CreateInstance(String, String) 메서드는 매개 변수가 없는 Person 클래스 생성자를 호출 하기 때문에이 예제에서는 Name 속성에 값을 할당 합니다.Because the CreateInstance(String, String) method calls the Person class parameterless constructor, the example assigns a value to its Name property.

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
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는 컴퓨터 경계를 교차 하거나 디자인 타임에 알려지지 않은 형식을 인스턴스화하기 위해 자주 호출 됩니다.However, CreateInstance is frequently called to instantiate a type that crosses machine boundaries or that is not known at design time. 이 경우 프로젝트의 어셈블리에 대 한 참조를 포함할 수 없습니다 하 고 형식의 멤버에 대 한 초기 바인딩 호출을 만들 수 없습니다.In this case, you cannot include a reference to the assembly in the project and cannot make early-bound calls to the type's members. 이 제한을 해결 하기 위해 다음 예제에서는 리플렉션과 함께 CreateInstance 메서드를 사용 하 여 Person 개체의 Name 속성에 값을 할당 하 고 해당 값을 표시 합니다.To work around this limitation, the following example uses the CreateInstance method along with reflection to assign a value to the Person object's Name property and to display its value.

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
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

설명

메서드는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances.

ObjectHandle.Unwrap를 사용 하 여 반환 값의 래핑을 해제 합니다.Use ObjectHandle.Unwrap to unwrap the return value.

assemblyName 다음 중 하나일 수 있습니다.assemblyName can be either of the following:

  • 해당 경로 또는 파일 확장명이 없는 어셈블리의 단순한 이름입니다.The simple name of an assembly, without its path or file extension. 예를 들어 경로와 이름이 .\bin\TypeExtensions.dll. 인 어셈블리에 대해 TypeExtensions를 지정 합니다.For example, you would specify TypeExtensions for an assembly whose path and name are .\bin\TypeExtensions.dll.

  • 단순한 이름, 버전, 문화권 및 공개 키 토큰; 구성 된 서명된 된 어셈블리의 전체 이름 예를 들어, "TypeExtensions, 버전 1.0.0.0, Culture = neutral, PublicKeyToken = 181869f2f7435b51 ="입니다.The full name of a signed assembly, which consists of its simple name, version, culture, and public key token; for example, "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".

공용 언어 런타임에서 어셈블리를 식별 하 고 로드 하는 방법에 대 한 자세한 내용은 런타임에서 어셈블리를 찾는 방법을 참조 하세요.For more information on how the common language runtime identifies and loads assemblies, see How the Runtime Locates Assemblies. 애플리케이션 구성 파일을 사용 하 여 어셈블리 위치를 정의 하는 내용은 어셈블리의 위치 지정합니다.For information on using the application configuration file to define assembly locations, see Specifying an Assembly's Location. assemblyName 발견 되 면 기본 컨텍스트에 로드 됩니다.If assemblyName is found, it is loaded in the default context.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1시작 하는 경우이 메서드를 사용 하 여 호출자에 게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 ReflectionPermission 권한이 부여 되 고 public이 아닌 형식을 포함 하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합이 나 그 하위 집합으로 제한 된 경우 public이 아닌 형식을 만들 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식에 관계 없이 해당 권한 부여 집합에 액세스 합니다.for accessing nonpublic types regardless of their grant set. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext, String[])

지정된 사용자 지정 활성화 데이터로 활성화되며 지정된 ActivationContext 개체에서 지정하는 형식의 인스턴스를 만듭니다.Creates an instance of the type that is designated by the specified ActivationContext object and activated with the specified custom activation data.

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

매개 변수

activationContext
ActivationContext

만들 개체를 지정하는 활성화 컨텍스트 개체입니다.An activation context object that specifies the object to create.

activationCustomData
String[]

사용자 지정 활성화 데이터가 포함된 유니코드 문자열의 배열입니다.An array of Unicode strings that contain custom activation data.

반환

새로 만든 개체에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created object.

설명

ObjectHandle.Unwrap 메서드를 사용 하 여 반환 값의 래핑을 해제 합니다.Use the ObjectHandle.Unwrap method to unwrap the return value.

도메인 정책을 설정 하 고 애플리케이션 기반 보안 모델을 제공 된 활성화 컨텍스트 매니페스트 기반 활성화 동안 사용 됩니다.The activation context is used during manifest-based activation to set up the domain policy and to provide an application-based security model. ActivationContext 클래스를 포함 한 ApplicationIdentity 애플리케이션 매니페스트에 대 한 액세스를 제공 하는 개체입니다.The ActivationContext class contains an ApplicationIdentity object that provides access to the application manifest. 자세한 내용은 ApplicationSecurityManager 클래스를 참조하세요.For more information, see the ApplicationSecurityManager class.

추가 정보

CreateInstance(Type)

해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the specified type using that type's parameterless constructor.

public:
 static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
static member CreateInstance : Type -> obj

매개 변수

type
Type

만들 개체의 형식입니다.The type of object to create.

반환

새로 만든 개체에 대한 참조입니다.A reference to the newly created object.

예외

type이(가) null인 경우type is null.

type이(가) RuntimeType가 아닌 경우type is not a RuntimeType.

또는-or- type은 개방형 제네릭 형식(즉, ContainsGenericParameters 속성에서 true 반환)입니다.type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder일 수 없습니다.type cannot be a TypeBuilder.

또는-or- TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

또는-or- type을 포함하는 어셈블리가 Save로 만들어진 동적 어셈블리입니다.The assembly that contains type is a dynamic assembly that was created with Save.

호출 중인 생성자가 예외를 발생시킵니다.The constructor being called throws an exception.

Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 대신 기본 클래스 예외 MemberAccessException을 catch합니다.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 대신 기본 클래스 예외 MissingMemberException을 catch합니다.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

일치하는 public 생성자를 찾을 수 없습니다.No matching public constructor was found.

type이 COM 개체이지만 형식을 가져오는 데 사용된 클래스 식별자가 유효하지 않거나 식별된 클래스가 등록되지 않았습니다.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type이 올바른 형식이 아닙니다.type is not a valid type.

예제

다음 코드 예제에서는 CreateInstance(Type) 메서드를 호출 하는 방법을 보여 줍니다.The following code example demonstrates how to call the CreateInstance(Type) method. 여러 다른 형식의 인스턴스를 만들고 기본값으로 표시 됩니다.Instances of several different types are created and their default values are displayed.

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
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(vbNewLine + "Objects and their default values:" + vbNewLine)
        For Each o As Object In instlist
            Console.WriteLine("Type:     {0}" + vbNewLine + "Value:    {1}" + _
                vbNewLine + "HashCode: {2}" + vbNewLine, _
                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

설명

호출할 생성자는 액세스할 수 있어야 합니다.The constructor to be invoked must be accessible.

메서드는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances.

참고

.NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1부터 호출자에 게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용 하 ReflectionPermission 권한이 부여 되 고 public이 아닌 형식을 포함 하는 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합이 나 그 하위 집합으로 제한 된 경우에는이 메서드를 사용 하 여 public이 아닌 형식에 액세스할 수 있습니다.Starting with the .NET Framework 2.0 서비스 팩 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. 리플렉션의 보안 고려 사항을 참조 하세요.(See Security Considerations for Reflection.)

이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5.NET Framework 3.5 이상을 대상으로 해야 합니다.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
public이 아닌 형식에 관계 없이 해당 권한 부여 집합에 액세스 합니다.for accessing nonpublic types regardless of their grant sets. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext)

지정된 ActivationContext 개체에서 지정하는 형식의 인스턴스를 만듭니다.Creates an instance of the type designated by the specified ActivationContext object.

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

매개 변수

activationContext
ActivationContext

만들 개체를 지정하는 활성화 컨텍스트 개체입니다.An activation context object that specifies the object to create.

반환

새로 만든 개체에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created object.

설명

메서드는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances.

ObjectHandle.Unwrap 메서드를 사용 하 여 반환 값의 래핑을 해제 합니다.Use the ObjectHandle.Unwrap method to unwrap the return value.

도메인 정책을 설정 하 고 애플리케이션 기반 보안 모델을 제공 된 활성화 컨텍스트 매니페스트 기반 활성화 동안 사용 됩니다.The activation context is used during manifest-based activation to set up the domain policy and to provide an application-based security model. ActivationContext 클래스를 포함 한 ApplicationIdentity 애플리케이션 매니페스트에 대 한 액세스를 제공 하는 개체입니다.The ActivationContext class contains an ApplicationIdentity object that provides access to the application manifest. 자세한 내용은 ApplicationSecurityManager 클래스를 참조하세요.For more information, see the ApplicationSecurityManager class.

추가 정보

CreateInstance(AppDomain, String, String)

명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::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
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String) As ObjectHandle

매개 변수

domain
AppDomain

typeName이라는 형식이 만들어지는 원격 도메인입니다.The remote domain where the type named typeName is created.

assemblyName
String

typeName이라는 형식이 검색된 어셈블리의 이름입니다.The name of the assembly where the type named typeName is sought. assemblyNamenull인 경우 실행 중인 어셈블리가 검색됩니다.If assemblyName is null, the executing assembly is searched.

typeName
String

인스턴스를 만들 형식의 정규화된 이름입니다.The fully qualified name of the type to create an instance of.

반환

새로 만들어진 인스턴스에 액세스하기 위해 래핑을 해제해야 하는 핸들입니다.A handle that must be unwrapped to access the newly created instance.

특성

예외

typeName 또는 domainnull인 경우typeName or domain is null.

일치하는 public 생성자를 찾을 수 없습니다.No matching public constructor was found.

assemblyName에서 typename을 찾을 수 없습니다.typename was not found in assemblyName.

assemblyName을 찾을 수 없습니다.assemblyName was not found.

호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.The caller does not have permission to call this constructor.

추상 형식의 인스턴스를 만들 수 없는 경우Cannot create an instance of an abstract type.

또는-or-

이 멤버가 런타임에 바인딩된 메커니즘을 사용하여 호출되었습니다.This member was invoked with a late-binding mechanism.

리플렉션을 통해 호출된 생성자가 예외를 발생시킵니다.The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID 또는 GetTypeFromCLSID를 통해 COM 형식을 가져오지 않았습니다.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReference, ArgIterator, VoidRuntimeArgumentHandle 형식 만들기 또는 이러한 형식의 배열이 지원되지 않습니다.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

assemblyName는 유효한 어셈블리가 아닙니다.assemblyName is not a valid assembly.

또는-or- CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되었는데 현재 로드된 버전보다 최신 버전인 CLR에 대해 assemblyName이 컴파일되었습니다.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.An assembly or module was loaded twice with two different evidences.

또는-or-

어셈블리 이름 또는 코드베이스가 올바르지 않습니다.The assembly name or code base is invalid.

설명

메서드는 Nullable<T> 인스턴스에 대 한 null를 반환 합니다.The method returns null for the Nullable<T> instances.

사용 하 여 CreateInstance 호스트 제한 된 보안 권한을 가진 애플리케이션 도메인에서 코드를 실행 해야 할 경우.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

ObjectHandle.Unwrap를 사용 하 여 반환 값의 래핑을 해제 합니다.Use ObjectHandle.Unwrap to unwrap the return value.

참고

이 메서드는 SecurityAction.LinkDemand를 사용 하 여 직접 실행 호출자에 게 완전 신뢰를 요구 합니다.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

보안

SecurityPermission
대리자의 인스턴스를 만들 때 관리 되지 않는 코드를 호출할 수 있습니다.for the ability to call unmanaged code when creating an instance of a delegate. 연결 된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
모든 형식 멤버에 대 한 작업을 호출할 수 있습니다.for the ability to invoke operations on all type members. 연결 된 열거형: MemberAccessAssociated enumeration: MemberAccess

SecurityCriticalAttribute
직접 실행 호출자에 대 한 완전 신뢰가 필요 합니다.requires full trust for the immediate caller. 이 멤버는 부분적으로 신뢰할 수 있는 또는 투명 코드에서 사용할 수 없습니다.This member cannot be used by partially trusted or transparent code.

CreateInstance<T>()

매개 변수가 없는 생성자를 사용하여 지정된 제네릭 형식 매개 변수로 지정된 형식의 인스턴스를 만듭니다.Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

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

만들 형식입니다.The type to create.

반환

T

새로 만든 개체에 대한 참조입니다.A reference to the newly created object.

예외

Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 대신 기본 클래스 예외 MissingMemberException을 catch합니다.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

추상 클래스의 인스턴스를 만들 수 없거나 T에 지정된 형식에 매개 변수가 없는 생성자가 없습니다.Cannot create an instance of an abstract class, or the type that is specified for T does not have a parameterless constructor.

설명

CreateInstance<T>() 제네릭 메서드는 컴파일러에서 형식 매개 변수로 지정 된 형식의 인스턴스화를 구현 하는 데 사용 됩니다.The CreateInstance<T>() generic method is used by compilers to implement the instantiation of types specified by type parameters. 예를 들어 다음 제네릭 메서드에서 new T() (의 C++gcnew T()) 구현은 CreateInstance<T>() 제네릭 메서드를 사용 합니다.For example, in the following generic method, the implementation of new T() (gcnew T() in C++) uses the CreateInstance<T>() generic method.

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

일반적으로 사용 되지 않습니다는 CreateInstance<T>() 애플리케이션에서 제네릭 메서드 코드를 하므로 컴파일 타임에 형식을 알 수 있어야 합니다.In general, there is no use for the CreateInstance<T>() generic method in application code, because the type must be known at compile time. 컴파일 타임에 형식을 알 수 있는 경우에는 일반 인스턴스화 구문을 사용할 수 있습니다 (new 연산자 C#의 경우에는 New Visual Basic, C++gcnew의 경우).If the type is known at compile time, normal instantiation syntax can be used (new operator in C#, New in Visual Basic, gcnew in C++). 컴파일 타임에 형식을 알 수 없는 경우 CreateInstance의 제네릭이 아닌 오버 로드를 호출할 수 있습니다.If the type is not known at compile time, you can call a non-generic overload of CreateInstance.

CreateInstance의 제네릭이 아닌 오버 로드는 이미 런타임에 바인딩된 생성자 확인을 제공 하기 때문에 인수 목록을 사용 하는 CreateInstance<T>() 제네릭 메서드의 오버 로드가 없습니다.There are no overloads of the CreateInstance<T>() generic method that take argument lists, because the non-generic overloads of CreateInstance already provide late-bound constructor resolution.

적용 대상