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 的成员定义了动态方法的精确特性:

已知问题