System.Reflection.Emit.MethodBuilder 类

本文提供了此 API 参考文档的补充说明。

MethodBuilder 类用于完全描述公共中间语言(CIL)中的方法,包括名称、属性、签名和方法正文。 它与类结合使用 TypeBuilder ,在运行时创建类。

可以使用反射发出来定义全局方法,并将方法定义为类型成员。 定义方法的 API 返回 MethodBuilder 对象。

全局方法

使用返回对象的方法定义 ModuleBuilder.DefineGlobalMethod 全局方法 MethodBuilder

全局方法必须是静态的。 如果动态模块包含全局方法, ModuleBuilder.CreateGlobalFunctions 则必须在保留动态模块或包含动态程序集之前调用该方法,因为公共语言运行时会推迟修复动态模块,直到定义所有全局函数。

使用该方法 ModuleBuilder.DefinePInvokeMethod 定义全局本机方法。 平台调用 (PInvoke) 方法不得声明为抽象或虚拟方法。 运行时设置 MethodAttributes.PinvokeImpl 平台调用方法的属性。

作为类型成员的方法

方法使用 TypeBuilder.DefineMethod 返回对象的方法 MethodBuilder 定义为类型成员。

该方法 DefineParameter 用于设置参数的名称和参数属性或返回值。 ParameterBuilder此方法返回的对象表示参数或返回值。 该 ParameterBuilder 对象可用于设置封送处理、设置常量值以及应用自定义属性。

特性

枚举的成员 MethodAttributes 定义动态方法的精确字符:

已知问题