MethodBuilder.Invoke 方法

定义

动态调用方法,此方法由此实例在给定对象上进行反射,传递指定的参数,并受给定绑定器的约束。

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 的位标志:InvokeMethodNonPublic 等等。

binder
Binder

启用绑定、强制参数类型、调用成员并通过反射检索 MemberInfo 对象的对象。 如果活页夹为 null,则使用默认活页夹。 如需了解详情,请访问 Binder

parameters
Object[]

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

culture
CultureInfo

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

返回

返回包含已调用方法的返回值的对象。

例外

注解

如果方法是静态的,则 obj 忽略 参数。 对于非静态方法, obj 应是继承或声明方法的类的实例,并且必须与此类的类型相同。 如果方法没有参数,则 的值 parameters 应为 null。 否则,参数数组中元素的数量、类型和顺序应与此实例所反映的方法的参数数量、类型和顺序相同。

注意

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

适用于