Activator.CreateInstance 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.
오버로드
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
사용되지 않음.
명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) |
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(Type, Object[], Object[]) |
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(String, String, Object[]) |
명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
사용되지 않음.
명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(Type, Object[]) |
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(Type, Boolean) |
해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(String, String) |
명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(ActivationContext, String[]) |
지정된 ActivationContext 개체에 의해 지정되고 지정된 사용자 지정 활성화 데이터로 활성화되는 형식의 인스턴스를 만듭니다. |
CreateInstance(Type) |
해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(ActivationContext) |
지정된 ActivationContext 개체로 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(AppDomain, String, String) |
명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance<T>() |
매개 변수가 없는 생성자를 사용하여 지정된 제네릭 형식 매개 변수로 지정된 형식의 인스턴스를 만듭니다. |
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
주의
Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityAttributes As Evidence) As ObjectHandle
매개 변수
- domain
- AppDomain
이름이 typeName
형식이 만들어지는 도메인입니다.
- assemblyName
- String
이름이 typeName
형식을 찾는 어셈블리의 이름입니다.
assemblyName
null
경우 실행 중인 어셈블리가 검색됩니다.
- typeName
- String
인스턴스를 만들 형식의 정규화된 이름입니다.
- ignoreCase
- Boolean
typeName
검색이 대/소문자를 구분하지 않도록 지정하는 true
. 검색이 대/소문자를 구분하도록 지정하는 false
.
- bindingAttr
- BindingFlags
typeName
생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다.
bindingAttr
0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.
- binder
- Binder
bindingAttr
및 args
사용하여 typeName
생성자를 검색하고 식별하는 개체입니다.
binder
null
경우 기본 바인더가 사용됩니다.
- args
- Object[]
호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다.
args
빈 배열 또는 null
경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.
- culture
- CultureInfo
typeName
생성자에 대해 선언된 형식으로 args
강제 변환을 제어하는 문화권별 정보입니다.
culture
null
경우 현재 스레드에 대한 CultureInfo 사용됩니다.
- activationAttributes
- Object[]
활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 단일 UrlAttribute 개체를 포함하는 배열입니다. UrlAttribute 원격 개체를 활성화하는 데 필요한 URL을 지정합니다.
- securityAttributes
- Evidence
보안 정책 결정을 내리고 코드 권한을 부여하는 데 사용되는 정보입니다.
반환
새로 만든 개체에 액세스하려면 래핑을 해제해야 하는 핸들이거나 값이 없는 Nullable<T> 인스턴스에 대한 null
.
- 특성
예외
domain
또는 typeName
null
.
일치하는 생성자를 찾을 수 없습니다.
assemblyName
typeName
찾을 수 없습니다.
assemblyName
찾을 수 없습니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
activationAttributes
빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.
-또는-
args
가장 일치하는 생성자에는 varargs
인수가 있습니다.
assemblyName
유효한 어셈블리가 아닙니다.
-또는-
CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName
현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.
설명
호스트가 제한된 보안 권한이 있는 애플리케이션 도메인에서 코드를 실행해야 하는 경우 CreateInstance 사용합니다.
ObjectHandle.Unwrap 사용하여 반환 값 래프 해제
적용 대상
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle
매개 변수
- domain
- AppDomain
이름이 typeName
형식이 만들어지는 도메인입니다.
- assemblyName
- String
이름이 typeName
형식을 찾는 어셈블리의 이름입니다.
assemblyName
null
경우 실행 중인 어셈블리가 검색됩니다.
- typeName
- String
인스턴스를 만들 형식의 정규화된 이름입니다.
- ignoreCase
- Boolean
typeName
검색이 대/소문자를 구분하지 않도록 지정하는 true
. 검색이 대/소문자를 구분하도록 지정하는 false
.
- bindingAttr
- BindingFlags
typeName
생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다.
bindingAttr
0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.
- binder
- Binder
bindingAttr
및 args
사용하여 typeName
생성자를 검색하고 식별하는 개체입니다.
binder
null
경우 기본 바인더가 사용됩니다.
- args
- Object[]
호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다.
args
빈 배열 또는 null
경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.
- culture
- CultureInfo
typeName
생성자에 대해 선언된 형식으로 args
강제 변환을 제어하는 문화권별 정보입니다.
culture
null
경우 현재 스레드에 대한 CultureInfo 사용됩니다.
- activationAttributes
- Object[]
활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.
이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.
반환
새로 만든 개체에 액세스하려면 래핑을 해제해야 하는 핸들이거나 값이 없는 Nullable<T> 인스턴스에 대한 null
.
- 특성
예외
domain
또는 typeName
null
.
일치하는 생성자를 찾을 수 없습니다.
assemblyName
typeName
찾을 수 없습니다.
assemblyName
찾을 수 없습니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
activationAttributes
빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.
-또는-
args
가장 일치하는 생성자에는 varargs
인수가 있습니다.
assemblyName
유효한 어셈블리가 아닙니다.
-또는-
CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName
현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.
설명
호스트가 제한된 보안 권한이 있는 애플리케이션 도메인에서 코드를 실행해야 하는 경우 CreateInstance 사용합니다.
ObjectHandle.Unwrap 사용하여 반환 값 래프 해제
적용 대상
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle
매개 변수
- assemblyName
- String
이름이 typeName
형식을 찾는 어셈블리의 이름입니다.
assemblyName
null
경우 실행 중인 어셈블리가 검색됩니다.
- typeName
- String
인스턴스를 만들 형식의 정규화된 이름입니다.
- ignoreCase
- Boolean
typeName
검색이 대/소문자를 구분하지 않도록 지정하는 true
. 검색이 대/소문자를 구분하도록 지정하는 false
.
- bindingAttr
- BindingFlags
typeName
생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다.
bindingAttr
0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.
- binder
- Binder
bindingAttr
및 args
사용하여 typeName
생성자를 검색하고 식별하는 개체입니다.
binder
null
경우 기본 바인더가 사용됩니다.
- args
- Object[]
호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다.
args
빈 배열 또는 null
경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.
- culture
- CultureInfo
typeName
생성자에 대해 선언된 형식으로 args
강제 변환을 제어하는 문화권별 정보입니다.
culture
null
경우 현재 스레드에 대한 CultureInfo 사용됩니다.
- activationAttributes
- Object[]
활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.
이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.
반환
새로 만든 인스턴스에 액세스하려면 래핑을 해제하거나 값이 없는 Nullable<T> 인스턴스에 대해 null
핸들입니다.
예외
typeName
null
.
일치하는 생성자를 찾을 수 없습니다.
assemblyName
typeName
찾을 수 없습니다.
assemblyName
찾을 수 없습니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
activationAttributes
빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.
-또는-
args
가장 일치하는 생성자에는 varargs
인수가 있습니다.
assemblyName
유효한 어셈블리가 아닙니다.
-또는-
CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName
현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.
설명
ObjectHandle.Unwrap 사용하여 반환 값 래프 해제
메모
.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식 및 멤버를 만들 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static object? CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As Object
매개 변수
- type
- Type
만들 개체의 형식입니다.
- bindingAttr
- BindingFlags
type
생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다.
bindingAttr
0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.
- binder
- Binder
bindingAttr
및 args
사용하여 type
생성자를 검색하고 식별하는 개체입니다.
binder
null
경우 기본 바인더가 사용됩니다.
- args
- Object[]
호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다.
args
빈 배열 또는 null
경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.
- culture
- CultureInfo
type
생성자에 대해 선언된 형식으로 args
강제 변환을 제어하는 문화권별 정보입니다.
culture
null
경우 현재 스레드에 대한 CultureInfo 사용됩니다.
- activationAttributes
- Object[]
활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.
이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.
반환
새로 만든 개체에 대한 참조이거나 값이 없는 Nullable<T> 인스턴스에 대한 null
.
예외
type
null
.
type
TypeBuilder수 없습니다.
-또는-
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
activationAttributes
빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.
-또는-
type
포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.
-또는-
args
가장 일치하는 생성자에는 varargs
인수가 있습니다.
호출되는 생성자는 예외를 throw합니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
일치하는 생성자를 찾을 수 없습니다.
type
COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.
type
올바른 형식이 아닙니다.
설명
호출할 생성자는 지정된 바인더 및 바인딩 특성의 제약 조건 하에서 지정된 인수 목록과 가장 구체적인 일치 항목을 제공해야 합니다.
메모
.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식 및 멤버에 액세스할 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)
- Source:
- Activator.cs
- Source:
- Activator.cs
- Source:
- Activator.cs
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture);
public static object? CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo) As Object
매개 변수
- type
- Type
만들 개체의 형식입니다.
- bindingAttr
- BindingFlags
type
생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다.
bindingAttr
0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.
- binder
- Binder
bindingAttr
및 args
사용하여 type
생성자를 검색하고 식별하는 개체입니다.
binder
null
경우 기본 바인더가 사용됩니다.
- args
- Object[]
호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다.
args
빈 배열 또는 null
경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.
- culture
- CultureInfo
type
생성자에 대해 선언된 형식으로 args
강제 변환을 제어하는 문화권별 정보입니다.
culture
null
경우 현재 스레드에 대한 CultureInfo 사용됩니다.
반환
새로 만든 개체에 대한 참조이거나 값이 없는 Nullable<T> 인스턴스에 대한 null
.
예외
type
null
.
type
TypeBuilder수 없습니다.
-또는-
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
type
포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.
-또는-
args
가장 일치하는 생성자에는 varargs
인수가 있습니다.
호출되는 생성자는 예외를 throw합니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
일치하는 생성자를 찾을 수 없습니다.
type
COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.
type
올바른 형식이 아닙니다.
설명
호출할 생성자는 지정된 바인더 및 바인딩 특성의 제약 조건 하에서 지정된 인수 목록과 가장 구체적인 일치 항목을 제공해야 합니다.
메모
.NET Framework 2.0부터 이 메서드는 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비퍼블릭 형식 및 멤버에 액세스하는 데 사용할 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(Type, Object[], Object[])
- Source:
- Activator.cs
- Source:
- Activator.cs
- Source:
- Activator.cs
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args, cli::array <System::Object ^> ^ activationAttributes);
public static object? CreateInstance (Type type, object?[]? args, object?[]? activationAttributes);
public static object CreateInstance (Type type, object[] args, object[] activationAttributes);
static member CreateInstance : Type * obj[] * obj[] -> obj
Public Shared Function CreateInstance (type As Type, args As Object(), activationAttributes As Object()) As Object
매개 변수
- type
- Type
만들 개체의 형식입니다.
- args
- Object[]
호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다.
args
빈 배열 또는 null
경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.
- activationAttributes
- Object[]
활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.
이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.
반환
새로 만든 개체에 대한 참조이거나 값이 없는 Nullable<T> 인스턴스에 대한 null
.
예외
type
null
.
type
TypeBuilder수 없습니다.
-또는-
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
activationAttributes
빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.
-또는-
type
포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.
-또는-
args
가장 일치하는 생성자에는 varargs
인수가 있습니다.
호출되는 생성자는 예외를 throw합니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
일치하는 공용 생성자를 찾을 수 없습니다.
type
COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.
type
올바른 형식이 아닙니다.
설명
호출할 생성자에 액세스할 수 있어야 하며 지정된 인수 목록과 가장 구체적인 일치 항목을 제공해야 합니다.
메모
.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식에 액세스할 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(String, String, Object[])
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, object[] activationAttributes);
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, activationAttributes As Object()) As ObjectHandle
매개 변수
- assemblyName
- String
이름이 typeName
형식을 찾는 어셈블리의 이름입니다.
assemblyName
null
경우 실행 중인 어셈블리가 검색됩니다.
- typeName
- String
인스턴스를 만들 형식의 정규화된 이름입니다.
- activationAttributes
- Object[]
활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.
이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.
반환
새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null
핸들입니다.
예외
typeName
null
.
일치하는 공용 생성자를 찾을 수 없습니다.
assemblyName
typeName
찾을 수 없습니다.
assemblyName
찾을 수 없습니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
activationAttributes
빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.
-또는-
activationAttributes
UrlAttribute 아닙니다.
배열.
assemblyName
유효한 어셈블리가 아닙니다.
-또는-
CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName
현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.
호출된 생성자가 예외를 throw합니다.
-또는-
activationAttributes
지정된 대상에서 원격 활성화를 시도할 때 오류가 발생했습니다.
설명
ObjectHandle.Unwrap 사용하여 반환 값 래프 해제
메모
.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여하고 게시되지 않은 형식의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식을 만들 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
주의
Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
명명된 어셈블리 및 지정된 매개 변수와 가장 일치하는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityInfo);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityInfo As Evidence) As ObjectHandle
매개 변수
- assemblyName
- String
이름이 typeName
형식을 찾는 어셈블리의 이름입니다.
assemblyName
null
경우 실행 중인 어셈블리가 검색됩니다.
- typeName
- String
인스턴스를 만들 형식의 정규화된 이름입니다.
- ignoreCase
- Boolean
typeName
검색이 대/소문자를 구분하지 않도록 지정하는 true
. 검색이 대/소문자를 구분하도록 지정하는 false
.
- bindingAttr
- BindingFlags
typeName
생성자에 대한 검색에 영향을 주는 0개 이상의 비트 플래그 조합입니다.
bindingAttr
0이면 공용 생성자에 대한 대/소문자 구분 검색이 수행됩니다.
- binder
- Binder
bindingAttr
및 args
사용하여 typeName
생성자를 검색하고 식별하는 개체입니다.
binder
null
경우 기본 바인더가 사용됩니다.
- args
- Object[]
호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다.
args
빈 배열 또는 null
경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.
- culture
- CultureInfo
typeName
생성자에 대해 선언된 형식으로 args
강제 변환을 제어하는 문화권별 정보입니다.
culture
null
경우 현재 스레드에 대한 CultureInfo 사용됩니다.
- activationAttributes
- Object[]
활성화에 참여할 수 있는 하나 이상의 특성 배열입니다. 일반적으로 원격 개체를 활성화하는 데 필요한 URL을 지정하는 단일 UrlAttribute 개체가 포함된 배열입니다.
이 매개 변수는 클라이언트 활성화 개체와 관련이 있습니다. 클라이언트 활성화는 이전 버전과의 호환성을 위해 유지되지만 새 개발에는 권장되지 않는 레거시 기술입니다. 분산 애플리케이션은 Windows Communication Foundation을 대신 사용해야 합니다.
- securityInfo
- Evidence
보안 정책 결정을 내리고 코드 권한을 부여하는 데 사용되는 정보입니다.
반환
새로 만든 개체에 액세스하려면 래핑을 해제해야 하는 핸들이거나 값이 없는 Nullable<T> 인스턴스에 대한 null
.
- 특성
예외
typeName
null
.
일치하는 생성자를 찾을 수 없습니다.
assemblyName
typeName
찾을 수 없습니다.
assemblyName
찾을 수 없습니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
activationAttributes
빈 배열이 아니며 생성되는 형식이 MarshalByRefObject파생되지 않습니다.
-또는-
args
가장 일치하는 생성자에는 varargs
인수가 있습니다.
assemblyName
유효한 어셈블리가 아닙니다.
-또는-
CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName
현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.
설명
ObjectHandle.Unwrap 사용하여 반환 값 래프 해제
메모
.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식 및 멤버를 만들 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(Type, Object[])
- Source:
- Activator.cs
- Source:
- Activator.cs
- Source:
- Activator.cs
지정된 매개 변수와 가장 일치하는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Object ^ CreateInstance(Type ^ type, ... cli::array <System::Object ^> ^ args);
public:
static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args);
public static object CreateInstance (Type type, params object[] args);
public static object? CreateInstance (Type type, params object?[]? args);
public static object CreateInstance (Type type, object[] args);
static member CreateInstance : Type * obj[] -> obj
Public Shared Function CreateInstance (type As Type, ParamArray args As Object()) As Object
Public Shared Function CreateInstance (type As Type, args As Object()) As Object
매개 변수
- type
- Type
만들 개체의 형식입니다.
- args
- Object[]
호출할 생성자의 매개 변수를 숫자, 순서 및 형식으로 일치시키는 인수의 배열입니다.
args
빈 배열 또는 null
경우 매개 변수를 사용하지 않는 생성자(매개 변수가 없는 생성자)가 호출됩니다.
반환
새로 만든 개체에 대한 참조이거나 값이 없는 Nullable<T> 인스턴스에 대한 null
.
예외
type
null
.
type
TypeBuilder수 없습니다.
-또는-
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
type
포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.
-또는-
args
가장 일치하는 생성자에는 varargs
인수가 있습니다.
호출되는 생성자는 예외를 throw합니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
참고: windows 스토어 앱 또는
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
일치하는 공용 생성자를 찾을 수 없습니다.
참고: windows 스토어 앱 또는
type
COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.
type
올바른 형식이 아닙니다.
예제
다음 예제에서는 CreateInstance(Type, Object[]) 메서드를 호출하여 String 개체를 만듭니다. String.String(Char[], Int32, Int32) 생성자를 호출하여 14번째 위치에서 시작하는 문자 배열의 10개 요소가 포함된 문자열을 인스턴스화합니다.
using System;
public class Example
{
public static void Main()
{
// Initialize array of characters from a to z.
char[] chars = new char[26];
for (int ctr = 0; ctr < 26; ctr++)
chars[ctr] = (char) (ctr + 0x0061);
object obj = Activator.CreateInstance(typeof(string),
new object[] { chars, 13, 10 } );
Console.WriteLine(obj);
}
}
// The example displays the following output:
// nopqrstuvw
open System
// Initialize array of characters from a to z.
let chars = [| 'a' .. 'z' |]
let obj = Activator.CreateInstance(typeof<string>, chars[13..22])
printfn $"{obj}"
// The example displays the following output:
// nopqrstuvw
Module Example
Public Sub Main()
' Initialize array of characters from a to z.
Dim chars(25) As Char
For ctr As Short = 0 To 25
chars(ctr) = ChrW(ctr + &h0061)
Next
Dim obj As Object = Activator.CreateInstance(GetType(String),
{ chars, 13, 10 })
Console.WriteLine(obj)
End Sub
End Module
' The example displays the following output:
' nopqrstuvw
다음 예제에서는 요소가 String 생성자에 전달될 인수인 들쭉날쭉한 배열을 만듭니다. 그런 다음 각 배열을 CreateInstance(Type, Object[]) 메서드에 전달하여 적절한 문자열 생성자를 호출합니다.
using System;
public class Example
{
public static void Main()
{
char[] characters = { 'a', 'b', 'c', 'd', 'e', 'f' };
object[][] arguments = new object[3][] { new object[] { characters },
new object[] { characters, 1, 4 },
new object[] { characters[1], 20 } };
for (int ctr = 0; ctr <= arguments.GetUpperBound(0); ctr++) {
object[] args = arguments[ctr];
object result = Activator.CreateInstance(typeof(string), args);
Console.WriteLine("{0}: {1}", result.GetType().Name, result);
}
}
}
// The example displays the following output:
// String: abcdef
// String: bcde
// String: bbbbbbbbbbbbbbbbbbbb
open System
let chars = [| 'a' .. 'f' |]
let arguments =
[| chars
chars[1..4]
Array.create 20 chars[1] |]
for args in arguments do
let result =
Activator.CreateInstance(typeof<string>, args)
printfn $"{result.GetType().Name}: {result}"
// The example displays the following output:
// String: abcdef
// String: bcde
// String: bbbbbbbbbbbbbbbbbbbb
Module Example
Public Sub Main()
Dim characters() As Char = { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c }
Dim arguments()() As Object = new Object(2)() { New Object() { characters },
New Object() { characters, 1, 4 },
New Object() { characters(1), 20 } }
For ctr As Integer = 0 To arguments.GetUpperBound(0)
Dim args() As Object = arguments(ctr)
Dim result As Object = Activator.CreateInstance(GetType(String), args)
Console.WriteLine("{0}: {1}", result.GetType().Name, result)
Next
End Sub
End Module
' The example displays the following output:
' String: abcdef
' String: bcde
' String: bbbbbbbbbbbbbbbbbbbb
설명
호출할 생성자에 액세스할 수 있어야 하며 지정된 인수 목록과 가장 구체적인 일치 항목을 제공해야 합니다.
메모
.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식에 액세스할 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(Type, Boolean)
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object? CreateInstance (Type type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj
Public Shared Function CreateInstance (type As Type, nonPublic As Boolean) As Object
매개 변수
- type
- Type
만들 개체의 형식입니다.
- nonPublic
- Boolean
public 또는 nonpublic 매개 변수 없는 생성자가 일치할 수 있는지 true
. 공용 매개 변수가 없는 생성자만 일치시킬 수 있는지 false
.
반환
새로 만든 개체에 대한 참조이거나 Nullable<T> 인스턴스에 대한 null
.
예외
type
null
.
type
TypeBuilder수 없습니다.
-또는-
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
type
포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.
호출되는 생성자는 예외를 throw합니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
일치하는 공용 생성자를 찾을 수 없습니다.
type
COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.
type
올바른 형식이 아닙니다.
설명
메모
.NET Framework 2.0부터 이 메서드는 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식 및 멤버가 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비퍼블릭 형식 및 멤버에 액세스하는 데 사용할 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(String, String)
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String) As ObjectHandle
매개 변수
- assemblyName
- String
이름이 typeName
형식을 찾는 어셈블리의 이름입니다.
assemblyName
null
경우 실행 중인 어셈블리가 검색됩니다.
- typeName
- String
인스턴스를 만들 형식의 정규화된 이름입니다.
반환
새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null
핸들입니다.
예외
typeName
null
.
일치하는 공용 생성자를 찾을 수 없습니다.
assemblyName
typeName
찾을 수 없습니다.
assemblyName
찾을 수 없습니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
assemblyName
유효한 어셈블리가 아닙니다.
-또는-
CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName
현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.
예제
다음 예제에서는 이름이 PersonInfo
어셈블리에서 Person
클래스를 정의합니다.
Person
클래스에는 두 개의 생성자가 있으며, 그 중 하나는 매개 변수가 없습니다.
using System;
public class Person
{
private string _name;
public Person()
{ }
public Person(string name)
{
this._name = name;
}
public string Name
{ get { return this._name; }
set { this._name = value; } }
public override string ToString()
{
return this._name;
}
}
type Person(name) =
member val Name = name with get, set
override this.ToString() = this.Name
new () = Person Unchecked.defaultof<string>
Public Class Person
Private _name As String
Public Sub New()
End Sub
Public Sub New(name As String)
Me._name = name
End Sub
Public Property Name As String
Get
Return Me._name
End Get
Set
Me._name = value
End Set
End Property
Public Overrides Function ToString() As String
Return Me._name
End Function
End Class
다음 예제에서는 CreateInstance(String, String) 메서드를 호출하여 Person
클래스를 인스턴스화합니다. 프로젝트에 추가하려면 PersonInfo.dll 대한 참조가 필요합니다.
CreateInstance(String, String) 메서드는 Person
클래스 매개 변수 없는 생성자를 호출하므로 이 예제에서는 해당 Name
속성에 값을 할당합니다.
using System;
using System.Runtime.Remoting;
public class Example
{
public static void Main()
{
ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
Person p = (Person) handle.Unwrap();
p.Name = "Samuel";
Console.WriteLine(p);
}
}
// The example displays the following output:
// Samuel
open System
let handle = Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap() :?> Person
p.Name <- "Samuel"
printfn $"{p}"
// The example displays the following output:
// Samuel
Imports System.Runtime.Remoting
Module Example
Public Sub Main()
Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
Dim p As Person = CType(handle.Unwrap(), Person)
p.Name = "Samuel"
Console.WriteLine(p)
End Sub
End Module
' The example displays the following output:
' Samuel
그러나 CreateInstance 머신 경계를 넘거나 디자인 타임에 알려지지 않은 형식을 인스턴스화하기 위해 자주 호출됩니다. 이 경우 프로젝트에 어셈블리에 대한 참조를 포함할 수 없으며 형식의 멤버에 대한 초기 바인딩된 호출을 수행할 수 없습니다. 이 제한을 해결하기 위해 다음 예제에서는 리플렉션과 함께 CreateInstance 메서드를 사용하여 Person
개체의 Name
속성에 값을 할당하고 해당 값을 표시합니다.
using System;
using System.Reflection;
using System.Runtime.Remoting;
public class Example
{
public static void Main()
{
ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
object p = handle.Unwrap();
Type t = p.GetType();
PropertyInfo prop = t.GetProperty("Name");
if (prop != null)
prop.SetValue(p, "Samuel");
MethodInfo method = t.GetMethod("ToString");
object retVal = method.Invoke(p, null);
if (retVal != null)
Console.WriteLine(retVal);
}
}
// The example displays the following output:
// Samuel
open System
let handle =
Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap()
let t = p.GetType()
let prop = t.GetProperty "Name"
if not (isNull prop) then
prop.SetValue(p, "Samuel")
let method = t.GetMethod "ToString"
let retVal = method.Invoke(p, null)
if not (isNull retVal) then
printfn $"{retVal}"
// The example displays the following output:
// Samuel
Imports System.Reflection
Imports System.Runtime.Remoting
Module Example
Public Sub Main()
Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
Dim p As Object = handle.Unwrap()
Dim t As Type = p.GetType()
Dim prop As PropertyInfo = t.GetProperty("Name")
if Not prop Is Nothing Then
prop.SetValue(p, "Samuel")
End If
Dim method As MethodInfo = t.GetMethod("ToString")
Dim retVal As Object = method.Invoke(p, Nothing)
If Not retVal Is Nothing Then
Console.WriteLine(retVal)
End If
End Sub
End Module
' The example displays the following output:
' Samuel
설명
ObjectHandle.Unwrap 사용하여 반환 값 래프 해제
assemblyName
다음 중 하나일 수 있습니다.
경로 또는 파일 확장명을 사용하지 않는 어셈블리의 단순 이름입니다. 예를 들어 경로와 이름이 있는 어셈블리의
TypeExtensions
지정합니다.\bin\TypeExtensions.dll.간단한 이름, 버전, 문화권 및 공개 키 토큰으로 구성된 서명된 어셈블리의 전체 이름입니다. 예를 들어 "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51"입니다.
공용 언어 런타임에서 어셈블리를 식별하고 로드하는 방법에 대한 자세한 내용은 런타임에서 어셈블리를 찾는 방법참조하세요. 애플리케이션 구성 파일을 사용하여 어셈블리 위치를 정의하는 방법에 대한 자세한 내용은 어셈블리의 위치지정을 참조하세요.
assemblyName
발견되면 기본 컨텍스트에 로드됩니다.
메모
.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식을 만들 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(ActivationContext, String[])
지정된 ActivationContext 개체에 의해 지정되고 지정된 사용자 지정 활성화 데이터로 활성화되는 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext, cli::array <System::String ^> ^ activationCustomData);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext, string[] activationCustomData);
static member CreateInstance : ActivationContext * string[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext, activationCustomData As String()) As ObjectHandle
매개 변수
- activationContext
- ActivationContext
만들 개체를 지정하는 활성화 컨텍스트 개체입니다.
- activationCustomData
- String[]
사용자 지정 활성화 데이터를 포함하는 유니코드 문자열의 배열입니다.
반환
새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null
핸들입니다.
설명
반환 값을 래프 해제하려면 ObjectHandle.Unwrap 메서드를 사용합니다.
활성화 컨텍스트는 매니페스트 기반 활성화 중에 도메인 정책을 설정하고 애플리케이션 기반 보안 모델을 제공하는 데 사용됩니다. ActivationContext 클래스에는 애플리케이션 매니페스트에 대한 액세스를 제공하는 ApplicationIdentity 개체가 포함되어 있습니다. 자세한 내용은 ApplicationSecurityManager 클래스를 참조하세요.
추가 정보
적용 대상
CreateInstance(Type)
- Source:
- Activator.cs
- Source:
- Activator.cs
- Source:
- Activator.cs
해당 형식의 매개 변수가 없는 생성자를 사용하여 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
public static object? CreateInstance (Type type);
static member CreateInstance : Type -> obj
Public Shared Function CreateInstance (type As Type) As Object
매개 변수
- type
- Type
만들 개체의 형식입니다.
반환
새로 만든 개체에 대한 참조이거나 Nullable<T> 인스턴스에 대한 null
.
예외
type
null
.
type
TypeBuilder수 없습니다.
-또는-
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
-또는-
type
포함하는 어셈블리는 Save사용하여 만든 동적 어셈블리입니다.
호출되는 생성자는 예외를 throw합니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
참고: windows 스토어 앱 또는
추상 클래스의 인스턴스를 만들 수 없거나 이 멤버가 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
일치하는 공용 생성자를 찾을 수 없습니다.
참고: windows 스토어 앱 또는
type
COM 개체이지만 형식을 가져오는 데 사용되는 클래스 식별자가 잘못되었거나 식별된 클래스가 등록되지 않았습니다.
type
올바른 형식이 아닙니다.
예제
다음 코드 예제에서는 CreateInstance(Type) 메서드를 호출하는 방법을 보여 줍니다. 여러 다른 형식의 인스턴스가 만들어지고 기본값이 표시됩니다.
using namespace System;
ref class DynamicInstanceList
{
private:
static String^ instanceSpec = "System.EventArgs;System.Random;" +
"System.Exception;System.Object;System.Version";
public:
static void Main()
{
array<String^>^ instances = instanceSpec->Split(';');
Array^ instlist = Array::CreateInstance(Object::typeid, instances->Length);
Object^ item;
for (int i = 0; i < instances->Length; i++)
{
// create the object from the specification string
Console::WriteLine("Creating instance of: {0}", instances[i]);
item = Activator::CreateInstance(Type::GetType(instances[i]));
instlist->SetValue(item, i);
}
Console::WriteLine("\nObjects and their default values:\n");
for each (Object^ o in instlist)
{
Console::WriteLine("Type: {0}\nValue: {1}\nHashCode: {2}\n",
o->GetType()->FullName, o->ToString(), o->GetHashCode());
}
}
};
int main()
{
DynamicInstanceList::Main();
}
// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type: System.EventArgs
// Value: System.EventArgs
// HashCode: 46104728
//
// Type: System.Random
// Value: System.Random
// HashCode: 12289376
//
// Type: System.Exception
// Value: System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type: System.Object
// Value: System.Object
// HashCode: 30015890
//
// Type: System.Version
// Value: 0.0
// HashCode: 1048575
using System;
class DynamicInstanceList
{
private static string instanceSpec = "System.EventArgs;System.Random;" +
"System.Exception;System.Object;System.Version";
public static void Main()
{
string[] instances = instanceSpec.Split(';');
Array instlist = Array.CreateInstance(typeof(object), instances.Length);
object item;
for (int i = 0; i < instances.Length; i++)
{
// create the object from the specification string
Console.WriteLine("Creating instance of: {0}", instances[i]);
item = Activator.CreateInstance(Type.GetType(instances[i]));
instlist.SetValue(item, i);
}
Console.WriteLine("\nObjects and their default values:\n");
foreach (object o in instlist)
{
Console.WriteLine("Type: {0}\nValue: {1}\nHashCode: {2}\n",
o.GetType().FullName, o.ToString(), o.GetHashCode());
}
}
}
// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type: System.EventArgs
// Value: System.EventArgs
// HashCode: 46104728
//
// Type: System.Random
// Value: System.Random
// HashCode: 12289376
//
// Type: System.Exception
// Value: System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type: System.Object
// Value: System.Object
// HashCode: 30015890
//
// Type: System.Version
// Value: 0.0
// HashCode: 1048575
open System
let instanceSpec =
"System.EventArgs;System.Random;System.Exception;System.Object;System.Version"
let instances = instanceSpec.Split ';'
let instlist = Array.zeroCreate instances.Length
let mutable item = obj ()
for i = 0 to instances.Length - 1 do
// create the object from the specification string
printfn $"Creating instance of: {instances.[i]}"
item <- Activator.CreateInstance(Type.GetType instances.[i])
instlist.[i] <- item
printfn "\nObjects and their default values:\n"
for o in instlist do
printfn $"Type: {o.GetType().FullName}\nValue: {o}\nHashCode: {o.GetHashCode()}\n"
// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type: System.EventArgs
// Value: System.EventArgs
// HashCode: 46104728
//
// Type: System.Random
// Value: System.Random
// HashCode: 12289376
//
// Type: System.Exception
// Value: System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type: System.Object
// Value: System.Object
// HashCode: 30015890
//
// Type: System.Version
// Value: 0.0
// HashCode: 1048575
Class DynamicInstanceList
Private Shared instanceSpec As String = "System.EventArgs;System.Random;" + _
"System.Exception;System.Object;System.Version"
Public Shared Sub Main()
Dim instances() As String = instanceSpec.Split(";")
Dim instlist As Array = Array.CreateInstance(GetType(Object), instances.Length)
Dim item As Object
For i As Integer = 0 To instances.Length -1
' create the object from the specification string
Console.WriteLine("Creating instance of: {0}", instances(i))
item = Activator.CreateInstance(Type.GetType(instances(i)))
instlist.SetValue(item, i)
Next i
Console.WriteLine(Environment.NewLine + "Objects and their default values:" + Environment.NewLine)
For Each o As Object In instlist
Console.WriteLine("Type: {0}" + Environment.NewLine + "Value: {1}" + _
Environment.NewLine + "HashCode: {2}" + Environment.NewLine, _
o.GetType().FullName, o.ToString(), o.GetHashCode())
Next o
End Sub
End Class
' This program will display output similar to the following:
'
' Creating instance of: System.EventArgs
' Creating instance of: System.Random
' Creating instance of: System.Exception
' Creating instance of: System.Object
' Creating instance of: System.Version
'
' Objects and their default values:
'
' Type: System.EventArgs
' Value: System.EventArgs
' HashCode: 46104728
'
' Type: System.Random
' Value: System.Random
' HashCode: 12289376
'
' Type: System.Exception
' Value: System.Exception: Exception of type 'System.Exception' was thrown.
' HashCode: 55530882
'
' Type: System.Object
' Value: System.Object
' HashCode: 30015890
'
' Type: System.Version
' Value: 0.0
' HashCode: 1048575
설명
호출할 생성자에 액세스할 수 있어야 합니다.
메모
.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식에 액세스할 수 있습니다. 리플렉션대한
적용 대상
CreateInstance(ActivationContext)
지정된 ActivationContext 개체로 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext);
static member CreateInstance : ActivationContext -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext) As ObjectHandle
매개 변수
- activationContext
- ActivationContext
만들 개체를 지정하는 활성화 컨텍스트 개체입니다.
반환
새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null
핸들입니다.
설명
반환 값을 래프 해제하려면 ObjectHandle.Unwrap 메서드를 사용합니다.
활성화 컨텍스트는 매니페스트 기반 활성화 중에 도메인 정책을 설정하고 애플리케이션 기반 보안 모델을 제공하는 데 사용됩니다. ActivationContext 클래스에는 애플리케이션 매니페스트에 대한 액세스를 제공하는 ApplicationIdentity 개체가 포함되어 있습니다. 자세한 내용은 ApplicationSecurityManager 클래스를 참조하세요.
추가 정보
적용 대상
CreateInstance(AppDomain, String, String)
명명된 어셈블리 및 매개 변수가 없는 생성자를 사용하여 지정된 원격 도메인에 이름이 지정된 형식의 인스턴스를 만듭니다.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String) As ObjectHandle
매개 변수
- domain
- AppDomain
이름이 typeName
형식이 만들어지는 원격 도메인입니다.
- assemblyName
- String
이름이 typeName
형식을 찾는 어셈블리의 이름입니다.
assemblyName
null
경우 실행 중인 어셈블리가 검색됩니다.
- typeName
- String
인스턴스를 만들 형식의 정규화된 이름입니다.
반환
새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null
핸들입니다.
- 특성
예외
typeName
또는 domain
null
.
일치하는 공용 생성자를 찾을 수 없습니다.
assemblyName
typeName
찾을 수 없습니다.
assemblyName
찾을 수 없습니다.
호출자에게 이 생성자를 호출할 수 있는 권한이 없습니다.
리플렉션을 통해 호출된 생성자는 예외를 throw했습니다.
COM 형식은 GetTypeFromProgID 또는 GetTypeFromCLSID통해 가져오지 못했습니다.
TypedReference, ArgIterator, Void및 RuntimeArgumentHandle 형식 또는 해당 형식의 배열을 만드는 것은 지원되지 않습니다.
assemblyName
유효한 어셈블리가 아닙니다.
-또는-
CLR(공용 언어 런타임) 버전 2.0 이상이 현재 로드되고 assemblyName
현재 로드된 버전보다 최신인 CLR 버전에 대해 컴파일되었습니다. .NET Framework 버전 2.0, 3.0 및 3.5는 모두 CLR 버전 2.0을 사용합니다.
설명
호스트가 제한된 보안 권한이 있는 애플리케이션 도메인에서 코드를 실행해야 하는 경우 CreateInstance 사용합니다.
ObjectHandle.Unwrap 사용하여 반환 값 래프 해제
적용 대상
CreateInstance<T>()
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
매개 변수가 없는 생성자를 사용하여 지정된 제네릭 형식 매개 변수로 지정된 형식의 인스턴스를 만듭니다.
public:
generic <typename T>
static T CreateInstance();
public static T CreateInstance<T> ();
static member CreateInstance : unit -> 'T
Public Shared Function CreateInstance(Of T) () As T
형식 매개 변수
- T
만들 형식입니다.
반환
새로 만든 개체에 대한 참조이거나 Nullable<T> 인스턴스에 대한 null
.
예외
추상 클래스의 인스턴스를 만들 수 없거나 T
대해 지정된 형식에 매개 변수가 없는 생성자가 없습니다.
참고: windows 스토어 앱 또는
설명
CreateInstance<T>() 제네릭 메서드는 컴파일러에서 형식 매개 변수로 지정된 형식의 인스턴스화를 구현하는 데 사용됩니다. 예를 들어 다음 제네릭 메서드에서 new T()
구현(C++의gcnew T()
)은 CreateInstance<T>() 제네릭 메서드를 사용합니다.
public:
generic <typename T> where T:gcnew()
static T Bar()
{
return gcnew T();
}
public static T Factory<T>() where T : new()
{
return new T();
}
let factory<'T when 'T : (new: unit -> 'T)> =
new 'T()
Public Shared Function Factory(Of T As New)() As T
Return New T()
End Function
일반적으로 애플리케이션 코드에서는 CreateInstance<T>() 제네릭 메서드를 사용할 수 없습니다. 컴파일 시 형식을 알고 있어야 하기 때문입니다. 형식이 컴파일 시간에 알려진 경우 일반 인스턴스화 구문을 사용할 수 있습니다(C#의new
연산자, Visual Basic의 New
, C++의 gcnew
). 컴파일 시간에 형식을 알 수 없는 경우 CreateInstance제네릭이 아닌 오버로드를 호출할 수 있습니다.
CreateInstance 제네릭이 아닌 오버로드가 이미 런타임에 바인딩된 생성자 확인을 제공하므로 인수 목록을 사용하는 CreateInstance<T>() 제네릭 메서드의 오버로드가 없습니다.
적용 대상
.NET