Clase System.Reflection.Emit.MethodBuilder

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

La MethodBuilder clase se usa para describir completamente un método en lenguaje intermedio común (CIL), incluidos el nombre, los atributos, la firma y el cuerpo del método. Se usa junto con la TypeBuilder clase para crear clases en tiempo de ejecución.

Puede usar la emisión de reflexión para definir métodos globales y definir métodos como miembros de tipo. Las API que definen los métodos devuelven MethodBuilder objetos.

Métodos globales

Un método global se define mediante el ModuleBuilder.DefineGlobalMethod método , que devuelve un MethodBuilder objeto .

Los métodos globales deben ser estáticos. Si un módulo dinámico contiene métodos globales, ModuleBuilder.CreateGlobalFunctions se debe llamar al método antes de conservar el módulo dinámico o el ensamblado dinámico contenedor porque Common Language Runtime pospone la corrección del módulo dinámico hasta que se hayan definido todas las funciones globales.

Un método nativo global se define mediante el ModuleBuilder.DefinePInvokeMethod método . Los métodos de invocación de plataforma (PInvoke) no deben declararse abstractos ni virtuales. El tiempo de ejecución establece el MethodAttributes.PinvokeImpl atributo para un método de invocación de plataforma.

Métodos como miembros de tipos

Un método se define como un miembro de tipo mediante el TypeBuilder.DefineMethod método , que devuelve un MethodBuilder objeto .

El DefineParameter método se usa para establecer los atributos name y parameter de un parámetro o del valor devuelto. El ParameterBuilder objeto devuelto por este método representa un parámetro o el valor devuelto. El ParameterBuilder objeto se puede usar para establecer la serialización, para establecer el valor constante y para aplicar atributos personalizados.

Atributos

Los miembros de la MethodAttributes enumeración definen el carácter preciso de un método dinámico:

Problemas conocidos