Activator.CreateInstance Activator.CreateInstance Activator.CreateInstance Activator.CreateInstance Method

Определение

Создает экземпляр указанного типа, используя конструктор, соответствующий заданным параметрам.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) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 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[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) 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[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) 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[]) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) 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) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) 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[]) CreateInstance(Type, Object[], Object[]) CreateInstance(Type, Object[], Object[])

Создает экземпляр указанного типа, используя конструктор, соответствующий заданным параметрам.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) 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) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 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[]) CreateInstance(Type, Object[]) CreateInstance(Type, Object[])

Создает экземпляр указанного типа, используя конструктор, соответствующий заданным параметрам.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean) CreateInstance(Type, Boolean) CreateInstance(Type, Boolean)

Создает экземпляр указанного типа, используя конструктор этого типа без параметров.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(String, String) CreateInstance(String, String) CreateInstance(String, String) CreateInstance(String, String)

Создает экземпляр типа с заданным именем, используя для этого именованную сборку и конструктор без параметров.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[]) 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) CreateInstance(Type) CreateInstance(Type)

Создает экземпляр указанного типа, используя конструктор этого типа без параметров.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(ActivationContext) CreateInstance(ActivationContext) CreateInstance(ActivationContext)

Создает экземпляр типа, назначенного указанным объектом ActivationContext.Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String) 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>() CreateInstance<T>() CreateInstance<T>() 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) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 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.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

Параметры

domain
AppDomain AppDomain AppDomain AppDomain

Домен, в котором создан тип с именем typeName.The domain where the type named typeName is created.

assemblyName
String String String String

Имя сборки, в которой выполняется поиск типа, заданного параметром typeName.The name of the assembly where the type named typeName is sought. Если параметр assemblyName имеет значение null, поиск осуществляется в выполняющейся сборке.If assemblyName is null, the executing assembly is searched.

typeName
String String String String

Полное имя предпочтительного типа.The fully qualified name of the preferred type.

ignoreCase
Boolean Boolean Boolean Boolean

Значение true для выполнения поиска typeName без учета регистра; значение false для выполнения поиска с учетом регистра.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

Сочетание битовых флагов (от нуля и более), влияющих на поиск конструктора typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Если значение параметра bindingAttr равно нулю, проводится поиск открытых конструкторов с учетом регистра.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

Объект, который использует параметры bindingAttr и args для поиска и идентификации конструктора typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Если значение параметра binder равно null, используется связыватель по умолчанию.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 CultureInfo CultureInfo CultureInfo

Сведения о языке и региональных параметрах, которые влияют на приведение args к формальным типам, объявленным для конструктора typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Если параметр culture имеет значение null, для текущего потока используется объект 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 Evidence Evidence 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 или typeName имеет значение null.domain or typeName is null.

Соответствующий конструктор не найден.No matching constructor was found.

Не удалось найти typename в assemblyName.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Создание типов TypedReference, ArgIterator, Void и RuntimeArgumentHandle или массивов этих типов не поддерживается.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 или более поздней. Объект assemblyName был скомпилирован для версии среды CLR, более поздней, чем загруженная.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.

Используется 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[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) 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 AppDomain AppDomain AppDomain

Домен, в котором создан тип с именем typeName.The domain where the type named typeName is created.

assemblyName
String String String String

Имя сборки, в которой выполняется поиск типа, заданного параметром typeName.The name of the assembly where the type named typeName is sought. Если параметр assemblyName имеет значение null, поиск осуществляется в выполняющейся сборке.If assemblyName is null, the executing assembly is searched.

typeName
String String String String

Полное имя предпочтительного типа.The fully qualified name of the preferred type.

ignoreCase
Boolean Boolean Boolean Boolean

Значение true для выполнения поиска typeName без учета регистра; значение false для выполнения поиска с учетом регистра.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

Сочетание битовых флагов (от нуля и более), влияющих на поиск конструктора typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Если значение параметра bindingAttr равно нулю, проводится поиск открытых конструкторов с учетом регистра.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

Объект, который использует параметры bindingAttr и args для поиска и идентификации конструктора typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Если значение параметра binder равно null, используется связыватель по умолчанию.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 CultureInfo CultureInfo CultureInfo

Сведения о языке и региональных параметрах, которые влияют на приведение args к формальным типам, объявленным для конструктора typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Если параметр culture имеет значение null, для текущего потока используется объект 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, определяющий URL-адрес, необходимый для активации удаленного объекта.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.

Не удалось найти typename в assemblyName.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Создание типов TypedReference, ArgIterator, Void и RuntimeArgumentHandle или массивов этих типов не поддерживается.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 или более поздней. Объект assemblyName был скомпилирован для версии среды CLR, более поздней, чем загруженная.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.

Используется 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[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) 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 String String String

Имя сборки, в которой выполняется поиск типа, заданного параметром typeName.The name of the assembly where the type named typeName is sought. Если параметр assemblyName имеет значение null, поиск осуществляется в выполняющейся сборке.If assemblyName is null, the executing assembly is searched.

typeName
String String String String

Полное имя предпочтительного типа.The fully qualified name of the preferred type.

ignoreCase
Boolean Boolean Boolean Boolean

Значение true для выполнения поиска typeName без учета регистра; значение false для выполнения поиска с учетом регистра.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

Сочетание битовых флагов (от нуля и более), влияющих на поиск конструктора typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Если значение параметра bindingAttr равно нулю, проводится поиск открытых конструкторов с учетом регистра.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

Объект, который использует параметры bindingAttr и args для поиска и идентификации конструктора typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Если значение параметра binder равно null, используется связыватель по умолчанию.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 CultureInfo CultureInfo CultureInfo

Сведения о языке и региональных параметрах, которые влияют на приведение args к формальным типам, объявленным для конструктора typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Если параметр culture имеет значение null, для текущего потока используется объект 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, определяющий URL-адрес, необходимый для активации удаленного объекта.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.

Исключения

Соответствующий конструктор не найден.No matching constructor was found.

Не удалось найти typename в assemblyName.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Создание типов TypedReference, ArgIterator, Void и RuntimeArgumentHandle или массивов этих типов не поддерживается.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 или более поздней. Объект assemblyName был скомпилирован для версии среды CLR, более поздней, чем загруженная.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.

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для создания неоткрытых типов и членов, если вызывающей стороне был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг, и если набор прав сборки, содержащей неоткрытые типы и члены, ограничен в набор разрешений вызывающего объекта или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам и членам независимо от набора их разрешений.for accessing nonpublic types and members regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) 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 Type Type Type

Тип создаваемого объекта.The type of object to create.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

Сочетание битовых флагов (от нуля и более), влияющих на поиск конструктора type.A combination of zero or more bit flags that affect the search for the type constructor. Если значение параметра bindingAttr равно нулю, проводится поиск открытых конструкторов с учетом регистра.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

Объект, который использует параметры bindingAttr и args для поиска и идентификации конструктора type.An object that uses bindingAttr and args to seek and identify the type constructor. Если значение параметра binder равно null, используется связыватель по умолчанию.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 CultureInfo CultureInfo CultureInfo

Сведения о языке и региональных параметрах, которые влияют на приведение args к формальным типам, объявленным для конструктора type.Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. Если параметр culture имеет значение null, для текущего потока используется объект 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, определяющий URL-адрес, необходимый для активации удаленного объекта.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).

Тип type не может иметь значение TypeBuilder.type cannot be a TypeBuilder.

- или --or- Создание типов TypedReference, ArgIterator, Voidи RuntimeArgumentHandle или массивов этих типов не поддерживается.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.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.

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для доступа к закрытым типам и членам, если вызывающей стороне был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг и если набор прав неопубликованных типов и членов ограничен набором предоставления вызывающего объекта или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам и членам независимо от набора их разрешений.for accessing nonpublic types and members regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) 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 Type Type Type

Тип создаваемого объекта.The type of object to create.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

Сочетание битовых флагов (от нуля и более), влияющих на поиск конструктора type.A combination of zero or more bit flags that affect the search for the type constructor. Если значение параметра bindingAttr равно нулю, проводится поиск открытых конструкторов с учетом регистра.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

Объект, который использует параметры bindingAttr и args для поиска и идентификации конструктора type.An object that uses bindingAttr and args to seek and identify the type constructor. Если значение параметра binder равно null, используется связыватель по умолчанию.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 CultureInfo CultureInfo CultureInfo

Сведения о языке и региональных параметрах, которые влияют на приведение args к формальным типам, объявленным для конструктора type.Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. Если параметр culture имеет значение null, для текущего потока используется объект 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).

Тип type не может иметь значение TypeBuilder.type cannot be a TypeBuilder.

- или --or- Создание типов TypedReference, ArgIterator, Voidи RuntimeArgumentHandle или массивов этих типов не поддерживается.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.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.

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для доступа к закрытым типам и членам, если вызывающей стороне был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг и если набор прав сборки, содержащей неоткрытые типы и члены, ограничен в набор разрешений вызывающего объекта или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам и членам независимо от набора их разрешений.for accessing nonpublic types and members regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Object[], Object[]) CreateInstance(Type, Object[], Object[]) 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 Type 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. Как правило, это массив, содержащий один объект UrlAttribute, определяющий URL-адрес, необходимый для активации удаленного объекта.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).

Тип type не может иметь значение TypeBuilder.type cannot be a TypeBuilder.

- или --or- Создание типов TypedReference, ArgIterator, Voidи RuntimeArgumentHandle или массивов этих типов не поддерживается.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Соответствующий общий конструктор не найден.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.

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для доступа к закрытым типам, если вызывающему объекту был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг, и если набор прав сборки, содержащей неоткрытые типы, ограничен предоставленным вызывающим объектом Установите или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам независимо от набора их разрешений.for accessing nonpublic types regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) 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 String String String

Имя сборки, в которой выполняется поиск типа, заданного параметром typeName.The name of the assembly where the type named typeName is sought. Если параметр assemblyName имеет значение null, поиск осуществляется в выполняющейся сборке.If assemblyName is null, the executing assembly is searched.

typeName
String String String String

Полное имя предпочтительного типа.The fully qualified name of the preferred type.

activationAttributes
Object[]

Массив, состоящий из одного или нескольких атрибутов, которые могут участвовать в активации.An array of one or more attributes that can participate in activation. Как правило, это массив, содержащий один объект UrlAttribute, определяющий URL-адрес, необходимый для активации удаленного объекта.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.

Исключения

Соответствующий общий конструктор не найден.No matching public constructor was found.

Не удалось найти typename в assemblyName.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Создание типов TypedReference, ArgIterator, Void и RuntimeArgumentHandle или массивов этих типов не поддерживается.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- activationAttributes не является объектом UrlAttribute.activationAttributes is not a UrlAttribute

Массив.array.

assemblyName не является допустимой сборкой.assemblyName is not a valid assembly.

- или --or- В данный момент загружена среда CLR версии 2.0 или более поздней. Объект assemblyName был скомпилирован для версии среды CLR, более поздней, чем загруженная.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.

Комментарии

Используется ObjectHandle.Unwrap для распаковки возвращаемого значения.Use ObjectHandle.Unwrap to unwrap the return value.

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для создания неоткрытых типов, если вызывающей стороне был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг, и если набор прав неопубликованных типов ограничен набором предоставления вызывающего объекта или его подмножеством.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам независимо от набора их разрешений.for accessing nonpublic types regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 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 String String String

Имя сборки, в которой выполняется поиск типа, заданного параметром typeName.The name of the assembly where the type named typeName is sought. Если параметр assemblyName имеет значение null, поиск осуществляется в выполняющейся сборке.If assemblyName is null, the executing assembly is searched.

typeName
String String String String

Полное имя предпочтительного типа.The fully qualified name of the preferred type.

ignoreCase
Boolean Boolean Boolean Boolean

Значение true для выполнения поиска typeName без учета регистра; значение false для выполнения поиска с учетом регистра.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

Сочетание битовых флагов (от нуля и более), влияющих на поиск конструктора typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Если значение параметра bindingAttr равно нулю, проводится поиск открытых конструкторов с учетом регистра.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

Объект, который использует параметры bindingAttr и args для поиска и идентификации конструктора typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Если значение параметра binder равно null, используется связыватель по умолчанию.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 CultureInfo CultureInfo CultureInfo

Сведения о языке и региональных параметрах, которые влияют на приведение args к формальным типам, объявленным для конструктора typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Если параметр culture имеет значение null, для текущего потока используется объект 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, определяющий URL-адрес, необходимый для активации удаленного объекта.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 Evidence Evidence 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.

Не удалось найти typename в assemblyName.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Создание типов TypedReference, ArgIterator, Void и RuntimeArgumentHandle или массивов этих типов не поддерживается.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 или более поздней. Объект assemblyName был скомпилирован для версии среды CLR, более поздней, чем загруженная.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.

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для создания неоткрытых типов и членов, если вызывающей стороне был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг, и если набор прав сборки, содержащей неоткрытые типы и члены, ограничен в набор разрешений вызывающего объекта или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам и членам независимо от набора их разрешений.for accessing nonpublic types and members regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Object[]) CreateInstance(Type, Object[]) 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 Type 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).

Тип type не может иметь значение TypeBuilder.type cannot be a TypeBuilder.

-или--or- Создание типов TypedReference, ArgIterator, Voidи RuntimeArgumentHandle или массивов этих типов не поддерживается.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.

Вместо этого в .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса MemberAccessException.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Вместо этого в .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса MissingMemberException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

Соответствующий общий конструктор не найден.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) конструктор для создания экземпляра строки, содержащей десять элементов из массива символов, начиная с позиции четырнадцатого.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.

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для доступа к закрытым типам, если вызывающему объекту был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг, и если набор прав сборки, содержащей неоткрытые типы, ограничен предоставленным вызывающим объектом Установите или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам независимо от набора их разрешений.for accessing nonpublic types regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Boolean) CreateInstance(Type, Boolean) 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 Type Type Type

Тип создаваемого объекта.The type of object to create.

nonPublic
Boolean Boolean Boolean Boolean

Значение true, если можно сопоставить как открытый, так и закрытый конструктор без параметров; значение 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 не является объектом RuntimeType.type is not a RuntimeType.

- или --or- Тип type является открытым универсальным типом (то есть свойство ContainsGenericParameters возвращает true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

Тип type не может иметь значение TypeBuilder.type cannot be a TypeBuilder.

- или --or- Создание типов TypedReference, ArgIterator, Voidи RuntimeArgumentHandle или массивов этих типов не поддерживается.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Соответствующий общий конструктор не найден.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.

Комментарии

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для доступа к закрытым типам и членам, если вызывающей стороне был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг и если набор прав сборки, содержащей неоткрытые типы и члены, ограничен в набор разрешений вызывающего объекта или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам и членам независимо от набора их разрешений.for accessing nonpublic types and members regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String) CreateInstance(String, String) CreateInstance(String, String) 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 String String String

Имя сборки, в которой выполняется поиск типа, заданного параметром typeName.The name of the assembly where the type named typeName is sought. Если параметр assemblyName имеет значение null, поиск осуществляется в выполняющейся сборке.If assemblyName is null, the executing assembly is searched.

typeName
String String String String

Полное имя предпочтительного типа.The fully qualified name of the preferred type.

Возвраты

Дескриптор, оболочку которого нужно удалить, чтобы получить доступ к вновь созданному экземпляру.A handle that must be unwrapped to access the newly created instance.

Исключения

Соответствующий общий конструктор не найден.No matching public constructor was found.

Не удалось найти typename в assemblyName.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Создание типов TypedReference, ArgIterator, Void и RuntimeArgumentHandle или массивов этих типов не поддерживается.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 или более поздней. Объект assemblyName был скомпилирован для версии среды CLR, более поздней, чем загруженная.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.

Примеры

В следующем примере определяется класс с именем Person в сборке с именем PersonInfo.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. Для этого требуется ссылка на Персонинфо. dll для добавления в проект.It requires a reference to PersonInfo.dll to be added to the project. Так как Person Name метод вызывает конструктор без параметров класса, в примере присваивается значение его свойству. CreateInstance(String, String)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

Комментарии

Используется 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. Например, можно указать TypeExtensions для сборки, путь и имя которых — .\бин\типикстенсионс.длл.For example, you would specify TypeExtensions for an assembly whose path and name are .\bin\TypeExtensions.dll.

  • Полное имя подписанной сборки, состоящее из его простого имени, версии, языка и региональных параметров и токена открытого ключа; Например, "Типикстенсионс, Version = 1.0.0.0, культура = 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".

Дополнительные сведения о том, как среда CLR определяет и загружает сборки, см. в разделе как среда выполнения находит сборки.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 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для создания закрытых типов, если вызывающему объекту предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг, и если набор прав сборки, содержащей неоткрытые типы, ограничивается предоставлением вызывающего объекта Установите или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам независимо от набора их разрешений.for accessing nonpublic types regardless of their grant set. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[]) 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 ActivationContext 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) CreateInstance(Type) 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 Type 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).

Тип type не может иметь значение TypeBuilder.type cannot be a TypeBuilder.

- или --or- Создание типов TypedReference, ArgIterator, Voidи RuntimeArgumentHandle или массивов этих типов не поддерживается.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.

Вместо этого в .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса MemberAccessException.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Вместо этого в .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса MissingMemberException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

Соответствующий общий конструктор не найден.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.

Примечание

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот метод можно использовать для доступа к закрытым типам, если вызывающему объекту был предоставлен ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess флаг, и если набор прав сборки, содержащей неоткрытые типы, ограничен предоставленным вызывающим объектом Установите или в подмножество.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).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
для доступа к закрытым типам независимо от наборов разрешений.for accessing nonpublic types regardless of their grant sets. Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext) CreateInstance(ActivationContext) 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 ActivationContext ActivationContext ActivationContext

Объект контекста активации, задающий объект, который необходимо создать.An activation context object that specifies the object to create.

Возвраты

Дескриптор, оболочку которого нужно удалить, чтобы получить доступ к вновь созданному объекту.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(AppDomain, String, String) CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String) 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 AppDomain AppDomain AppDomain

Удаленный домен, в котором создан тип с именем typeName.The remote domain where the type named typeName is created.

assemblyName
String String String String

Имя сборки, в которой выполняется поиск типа, заданного параметром typeName.The name of the assembly where the type named typeName is sought. Если параметр assemblyName имеет значение null, поиск осуществляется в выполняющейся сборке.If assemblyName is null, the executing assembly is searched.

typeName
String String String String

Полное имя предпочтительного типа.The fully qualified name of the preferred type.

Возвраты

Дескриптор, оболочку которого нужно удалить, чтобы получить доступ к вновь созданному экземпляру.A handle that must be unwrapped to access the newly created instance.

Исключения

Параметр typeName или domain имеет значение null.typeName or domain is null.

Соответствующий общий конструктор не найден.No matching public constructor was found.

Не удалось найти typename в assemblyName.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.

Тип модели COM не был получен с помощью GetTypeFromProgID или GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Создание типов TypedReference, ArgIterator, Void и RuntimeArgumentHandle или массивов этих типов не поддерживается.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 или более поздней. Объект assemblyName был скомпилирован для версии среды CLR, более поздней, чем загруженная.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.

Используется 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>() CreateInstance<T>() CreateInstance<T>() 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 T T T

Ссылка на вновь созданный объект.A reference to the newly created object.

Исключения

Вместо этого в .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса MissingMemberException.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() реализация (gcnew T() в C++) использует 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, gcnew в C++).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<T>() универсального метода, принимающих списки аргументов, так как неуниверсальные перегрузки CreateInstance уже предоставляют разрешение конструктора с поздним связыванием.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.

Применяется к