ConstructorInfo.Invoke Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывает конструктор, отраженный этим экземпляром.
Перегрузки
| Имя | Описание |
|---|---|
| Invoke(Object[]) |
Вызывает конструктор, отраженный экземпляром с указанными параметрами, предоставляя значения по умолчанию для параметров, которые обычно не используются. |
| Invoke(BindingFlags, Binder, Object[], CultureInfo) |
При реализации в производном классе вызывает конструктор, отраженный этим |
Invoke(Object[])
- Исходный код:
- ConstructorInfo.cs
- Исходный код:
- ConstructorInfo.cs
- Исходный код:
- 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[] = new Object[0]. Любой объект в этом массиве, который явно не инициализирован со значением, будет содержать значение по умолчанию для этого типа объекта. Для элементов ссылочного типа это значение.null Для элементов типа значений это значение равно 0, 0,0 или falseв зависимости от конкретного типа элемента.
Возвращаемое значение
Экземпляр класса, связанного с конструктором.
Исключения
Конструктор является частным или защищенным, и вызывающий не хватает MemberAccess.
Массив parameters не содержит значений, которые соответствуют типам, принятым этим конструктором.
Вызываемый конструктор создает исключение.
Неверное число параметров было передано.
TypedReferenceСоздание и ArgIteratorRuntimeArgumentHandle типы не поддерживаются.
Вызывающий объект не имеет необходимых разрешений на доступ к коду.
Комментарии
Число, тип и порядок элементов в parameters массиве должно совпадать с числом, типом и порядком параметров конструктора, отраженным этим экземпляром. Перед вызовом конструктора убедитесь, Invoke что вызывающий объект имеет разрешение на доступ и проверяет допустимость параметров.
Ограничения доступа игнорируются для полностью доверенного кода. То есть к частным конструкторам, методам, полям и свойствам можно обращаться и вызывать с помощью отражения всякий раз, когда код полностью доверяется.
Note
Чтобы создать экземпляр типа значения, не имеющего конструкторов экземпляров, используйте CreateInstance этот метод.
Этот метод является удобным методом для следующей перегруженной версии, используя значения по умолчанию. Этот метод нельзя переопределить.
Note
Этот метод можно использовать для доступа к недоступным членам, если вызывающий объект был предоставлен ReflectionPermission с ReflectionPermissionFlag.RestrictedMemberAccess флагом, и если набор грантов, не являющихся открытыми, ограничен набором предоставления вызывающего объекта или подмножеством. (См. вопросы безопасности для отражения.)
Применяется к
Invoke(BindingFlags, Binder, Object[], CultureInfo)
- Исходный код:
- ConstructorInfo.cs
- Исходный код:
- ConstructorInfo.cs
- Исходный код:
- 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 противном случае nullBinder.DefaultBinding используется.
- parameters
- Object[]
Массив типа Object , используемый для сопоставления числа, порядка и типа параметров для этого конструктора, в соответствии с ограничениями binder. Если этот конструктор не требует параметров, передайте массив с нулевыми элементами, как в параметрах Object[] = new Object[0]. Любой объект в этом массиве, который явно не инициализирован со значением, будет содержать значение по умолчанию для этого типа объекта. Для элементов ссылочного типа это значение.null Для элементов типа значений это значение равно 0, 0,0 или falseв зависимости от конкретного типа элемента.
- culture
- CultureInfo
Используется CultureInfo для управления приведением типов. Если это nullтак, CultureInfo используется текущий поток.
Возвращаемое значение
Экземпляр класса, связанного с конструктором.
Исключения
Массив parameters не содержит значений, которые соответствуют типам, принятым этим конструктором, в соответствии с ограничениями.binder
Вызываемый конструктор создает исключение.
Неверное число параметров было передано.
TypedReferenceСоздание и ArgIteratorRuntimeArgumentHandle типы не поддерживаются.
Вызывающий объект не имеет необходимых разрешений на доступ к коду.
Конструктор является частным или защищенным, и вызывающий не хватает MemberAccess.
Комментарии
Число, тип и порядок элементов в parameters массиве должно совпадать с числом, типом и порядком параметров конструктора, отраженным этим экземпляром.
Перед вызовом конструктора убедитесь, Invoke что вызывающий объект имеет разрешение на доступ и что параметры имеют правильный номер, порядок и тип.
Ограничения доступа игнорируются для полностью доверенного кода. То есть к частным конструкторам, методам, полям и свойствам можно обращаться и вызывать с помощью отражения всякий раз, когда код полностью доверяется.
Note
Чтобы создать экземпляр типа значения, не имеющего конструкторов экземпляров, используйте CreateInstance этот метод.
Note
Этот метод можно использовать для доступа к недоступным членам, если вызывающий объект был предоставлен ReflectionPermission с ReflectionPermissionFlag.RestrictedMemberAccess флагом, и если набор грантов, не являющихся открытыми, ограничен набором предоставления вызывающего объекта или подмножеством. (См. вопросы Security Для отражения.) Чтобы использовать эту функцию, приложение должно использовать платформу .NET Framework 3.5 или более поздней версии.