MethodBuilder.Invoke 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
动态调用方法,此方法由此实例在给定对象上进行反射,传递指定的参数,并受给定绑定器的约束。
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 的位标志:InvokeMethod
、NonPublic
等等。
- parameters
- Object[]
自变量列表。 此自变量数组在数量、顺序和类型方面与要调用的方法的参数相同。 如果不存在任何参数,则应为 null
。
- culture
- CultureInfo
用于控制类型强制的 CultureInfo 的实例。 如果这是 NULL,则使用当前线程的 CultureInfo。 (请注意,例如,这对于将表示 1000 的 String 转换为 Double 值是必需的,因为不同的区域性以不同的方式表示 1000。)
返回
返回包含已调用方法的返回值的对象。
例外
目前尚不支持此方法。 使用 GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) 检索此方法,并在返回的 MethodInfo 上调用 InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])。
注解
如果方法是静态的,则 obj
忽略 参数。 对于非静态方法, obj
应是继承或声明方法的类的实例,并且必须与此类的类型相同。 如果方法没有参数,则 的值 parameters
应为 null
。 否则,参数数组中元素的数量、类型和顺序应与此实例所反映的方法的参数数量、类型和顺序相同。
注意
对于完全信任的代码,将忽略访问限制。 也就是说,只要代码完全受信任,就可以使用反射访问和调用私有构造函数、方法、字段和属性。