TypeBuilder.InvokeMember 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
调用指定的成员。 在指定的活页夹和调用属性的约束下,要调用的方法必须为可访问,并且提供与指定的自变量列表最具体的匹配。
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
的位标志。
- 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,并在检索到的类型上使用反射。