ConstructorInfo.Invoke Метод

Определение

Вызывает конструктор, отраженный этим экземпляром.

Перегрузки

Invoke(Object[])

Вызывает конструктор, который определяется экземпляром с указанными параметрами, чтобы этим параметрам присваивались стандартные значения, которые используются нечасто.

Invoke(BindingFlags, Binder, Object[], CultureInfo)

При реализации в производном классе вызывает конструктор, отраженный этим объектом ConstructorInfo с заданными аргументами с учетом ограничений, установленных объектом Binder.

Invoke(Object[])

Исходный код:
ConstructorInfo.cs
Исходный код:
ConstructorInfo.cs
Исходный код:
ConstructorInfo.cs

Вызывает конструктор, который определяется экземпляром с указанными параметрами, чтобы этим параметрам присваивались стандартные значения, которые используются нечасто.

public:
 virtual System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public:
 System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public virtual object Invoke (object[] parameters);
public object Invoke (object?[]? parameters);
public object Invoke (object[] parameters);
override this.Invoke : obj[] -> obj
Public Overridable Function Invoke (parameters As Object()) As Object
Public Function Invoke (parameters As Object()) As Object

Параметры

parameters
Object[]

Массив объектов, число, порядок и тип которых (с учетом ограничений для считывателя по умолчанию) соответствуют списку параметров этого конструктора. Если этот конструктор не принимает параметры, следует использовать массив с нулевым числом элементов или null, например: Object[] parameters = new Object[0]. Любой объект этого массива, которому не присвоено значение явным образом, будет содержать значение по умолчанию для своего типа объекта. Для элементов ссылочного типа это значение равно null. Для элементов, хранящих значения, это значение равно 0, 0,0 или false (в зависимости от типа конкретного элемента).

Возвращаемое значение

Экземпляр класса, связанный с конструктором.

Исключения

Этот класс является абстрактным.

-или-

Конструктор является инициализатором класса.

Конструктор является закрытым или защищенным, а у вызывающего объекта отсутствует разрешение MemberAccess.

Примечание. В .NET для приложений Магазина Windows или переносимой библиотеки классов перехватите исключение базового класса , MemberAccessException.

Массив parameters не содержит значения, которые соответствуют типам, принимаемым этим конструктором.

Вызванный конструктор создает исключение.

Передано неверное число параметров.

Не поддерживается создание типов TypedReference, ArgIterator и RuntimeArgumentHandle.

Вызывающий объект не имеет необходимые разрешения для доступа к коду.

Комментарии

Число, тип и порядок элементов в массиве parameters должны совпадать с числом, типом и порядком параметров конструктора, отражаемым этим экземпляром. Перед вызовом конструктора убедитесь, Invoke что вызывающий объект имеет разрешение на доступ, и проверяет допустимость параметров.

Ограничения доступа игнорируются для полностью доверенного кода. То есть к закрытым конструкторам, методам, полям и свойствам можно обращаться и вызывать с помощью отражения всякий раз, когда код является полностью доверенным.

Примечание

Чтобы создать экземпляр типа значения без конструкторов экземпляров, используйте CreateInstance метод .

Этот метод является удобным для следующей перегруженной версии с использованием значений по умолчанию. Этот метод не может быть переопределен.

Примечание

Начиная с платформа .NET Framework 2.0, этот метод можно использовать для доступа к не открытым членам, если вызывающему объекту предоставлен ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess флаг и если набор разрешений для не открытых элементов ограничен набором разрешений вызывающего объекта или его подмножеством. (См. раздел Вопросы безопасности для отражения.) Чтобы использовать эту функцию, приложение должно быть предназначено для платформа .NET Framework 3.5 или более поздней версии.

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

Invoke(BindingFlags, Binder, Object[], CultureInfo)

Исходный код:
ConstructorInfo.cs
Исходный код:
ConstructorInfo.cs
Исходный код:
ConstructorInfo.cs

При реализации в производном классе вызывает конструктор, отраженный этим объектом ConstructorInfo с заданными аргументами с учетом ограничений, установленных объектом Binder.

public:
 abstract System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
override this.Invoke : System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public MustOverride Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object

Параметры

invokeAttr
BindingFlags

Одно из значений BindingFlags, определяющих тип связывания.

binder
Binder

Параметр Binder, который определяет набор свойств и обеспечивает привязку, приведение типов аргументов и вызов членов с помощью отражения. Если параметр binder принимает значение null, используется свойство Binder.DefaultBinding.

parameters
Object[]

Массив типа Object, используемый для проверки соответствия количества, порядка и типа параметрам данного конструктора, с учетом ограничений, установленных объектом binder. Если этот конструктор не требует параметров, передается массив нулей, как в Object[] parameters = new Object[0]. Любой объект этого массива, которому не присвоено значение явным образом, будет содержать значение по умолчанию для своего типа объекта. Для элементов ссылочного типа это значение равно null. Для элементов, хранящих значения, это значение равно 0, 0,0 или false (в зависимости от типа конкретного элемента).

culture
CultureInfo

Параметр CultureInfo, используемый для управления приведением типов. Если значение этого объекта — null, для текущего потока используется CultureInfo.

Возвращаемое значение

Экземпляр класса, связанный с конструктором.

Исключения

Массив parameters не содержит значений, соответствующих типам, принимаемым этим конструктором, с учетом ограничений, установленных объектом binder.

Вызванный конструктор создает исключение.

Передано неверное число параметров.

Не поддерживается создание типов TypedReference, ArgIterator и RuntimeArgumentHandle.

Вызывающий объект не имеет разрешений на доступ к необходимому коду.

Этот класс является абстрактным.

-или-

Конструктор является инициализатором класса.

Конструктор является закрытым или защищенным, а у вызывающего объекта отсутствует разрешение MemberAccess.

Комментарии

Число, тип и порядок элементов в массиве parameters должны совпадать с числом, типом и порядком параметров конструктора, отражаемым этим экземпляром.

Перед вызовом конструктора убедитесь, Invoke что вызывающий объект имеет разрешение на доступ и что параметры имеют правильный номер, порядок и тип.

Ограничения доступа игнорируются для полностью доверенного кода. То есть к закрытым конструкторам, методам, полям и свойствам можно обращаться и вызывать с помощью отражения всякий раз, когда код является полностью доверенным.

Примечание

Чтобы создать экземпляр типа значения без конструкторов экземпляров, используйте CreateInstance метод .

Примечание

Начиная с платформа .NET Framework 2.0, этот метод можно использовать для доступа к не открытым членам, если вызывающему объекту предоставлен ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess флаг и если набор разрешений для не открытых элементов ограничен набором разрешений вызывающего объекта или его подмножеством. (См. раздел Вопросы безопасности для отражения.) Чтобы использовать эту функцию, приложение должно быть предназначено для платформа .NET Framework 3.5 или более поздней версии.

См. также раздел

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