TypeBuilder.InvokeMember 方法

定义

调用指定的成员。 在指定的活页夹和调用属性的约束下,要调用的方法必须为可访问,并且提供与指定的自变量列表最具体的匹配。

public:
 override System::Object ^ InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array <System::Object ^> ^ args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ namedParameters);
public override object? InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
public override object InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
Public Overrides Function InvokeMember (name As String, invokeAttr As BindingFlags, binder As Binder, target As Object, args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, namedParameters As String()) As Object

参数

name
String

要调用的成员的名称。 这可以是构造函数、方法、属性或字段。 必须指定合适的调用属性。 请注意,可以通过将一个空字符串作为成员的名称进行传递来调用一个类的默认成员。

invokeAttr
BindingFlags

调用属性。 这必须是来自 BindingFlags 的位标志。

binder
Binder

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

target
Object

对其调用指定成员的对象。 如果该成员为静态,则忽略此参数。

args
Object[]

自变量列表。 这是一个对象的数组,该对象包含要调用的成员的参数的数量、顺序和类型。 如果不存在任何参数,则这应为 null。

modifiers
ParameterModifier[]

args 长度相同的数组,其元素表示与要调用的成员的自变量关联的特性。 参数在元数据中具有与之相关联的属性。 它们由不同的互操作性服务使用。 有关更多详细信息,请参阅元数据规范。

culture
CultureInfo

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

namedParameters
String[]

namedParameters 数组中的每个参数对应 args 数组中的元素来获取值。 如果 args 的长度大于 namedParameters 的长度,则剩余的自变量值将按顺序传递。

返回

返回被调用的成员的返回值。

例外

不完整类型目前不支持此方法。

注解

如果方法声明中的参数数等于指定参数列表中的参数数,并且每个参数的类型可由绑定器转换为参数的类型,则将调用方法。

绑定器将查找所有匹配的方法。 这些方法基于请求的绑定类型 (BindingFlags.InvokeMethod、BindingFlags.GetProperties 等.) 。 方法集按名称、参数数和绑定器中定义的一组搜索修饰符进行筛选。 选择 方法后,将调用该方法。 此时会检查辅助功能。 搜索可以根据与方法关联的辅助功能属性来控制搜索哪组方法。 方法 IBinder.BindToMethod 负责选择要调用的方法。 默认绑定器选择最具体的匹配项。

注意

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

目前尚不支持此方法。 可以使用 或 Assembly.GetType 检索类型Type.GetType,并在检索到的类型上使用反射。

适用于