Share via


ConstructorBuilder.Invoke 方法

定义

调用此实例动态反射的构造函数。

重载

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

动态调用由给定对象上的此实例所表示的构造函数,一并传递指定的参数,并受给定绑定器的约束。

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

在指定 Binder 的约束下,用指定的参数动态调用此实例反射的构造函数。

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

Source:
ConstructorBuilder.cs

动态调用由给定对象上的此实例所表示的构造函数,一并传递指定的参数,并受给定绑定器的约束。

public:
 override System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public override object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public override 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 Overrides Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object

参数

invokeAttr
BindingFlags

这必须是来自 BindingFlags 的位标志,例如 InvokeMethod、NonPublic 等。

binder
Binder

一个对象,它使用反射启用绑定、参数类型的强制、成员的调用和 MemberInfo 对象的检索。 如果活页夹为 null,则使用默认活页夹。 请参阅 Binder

parameters
Object[]

自变量列表。 此自变量数组在数量、顺序和类型方面必须与要调用的构造函数的参数相同。 如果不存在任何参数,则应为 null

culture
CultureInfo

用于控制类型强制的 CultureInfo 的实例。 如果这是 NULL,则使用当前线程的 CultureInfo。 (例如,这对于将表示 1000 的 String 转换为 Double 值是必需的,因为不同的区域性以不同的方式表示 1000。)

返回

所调用的构造函数返回的值。

例外

注解

如果构造函数没有参数,则 parameters 参数的值应为 null。 否则,数组中 parameters 元素的数量、类型和顺序应与此实例所反映的构造函数的参数的数量、类型和顺序相同。

例如,如果此实例反射的构造函数声明为采用两个字符串的公共类,则 parameters 参数应该是长度为 2 的 Object 数组。

注意

对于完全信任的代码,将忽略访问限制。 也就是说,只要代码完全受信任,就可以使用反射访问和调用私有构造函数、方法、字段和属性。

另请参阅

适用于

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

Source:
ConstructorBuilder.cs

在指定 Binder 的约束下,用指定的参数动态调用此实例反射的构造函数。

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

参数

obj
Object

需要重新初始化的对象。

invokeAttr
BindingFlags

指定所需绑定类型的 BindingFlags 值之一。

binder
Binder

一个 Binder,它定义一组属性并通过反射来启用绑定、自变量类型强制转换和成员调用。 如果 bindernull,则使用 Binder.DefaultBinding。

parameters
Object[]

自变量列表。 此自变量数组在数量、顺序和类型方面必须与要调用的构造函数的参数相同。 如果没有参数,则应为一个空引用(在 Visual Basic 中为 Nothing)。

culture
CultureInfo

用于控制类型强制转换的 CultureInfo。 如果这是 NULL,则使用当前线程的 CultureInfo

返回

与构造函数关联的类的实例。

例外

注解

参数数组中元素的数量、类型和顺序应与此实例所反映的构造函数的参数的数量、类型和顺序相同。

在调用构造函数之前, Invoke 确保调用方具有访问权限,并且参数的数量、顺序和类型都正确。

对于完全信任的代码,将忽略访问限制。 也就是说,只要代码完全受信任,就可以使用反射访问和调用私有构造函数、方法、字段和属性。

另请参阅

适用于