Compartilhar via


Classe System.Reflection.Emit.MethodBuilder

Este artigo fornece comentários complementares à documentação de referência para esta API.

A MethodBuilder classe é usada para descrever totalmente um método em CIL (linguagem intermediária comum), incluindo o nome, os atributos, a assinatura e o corpo do método. Ele é usado em conjunto com a TypeBuilder classe para criar classes em runtime.

Você pode usar a emissão de reflexão para definir métodos globais e definir métodos como membros do tipo. As APIs que definem métodos retornam MethodBuilder objetos.

Métodos globais

Um método global é definido usando o ModuleBuilder.DefineGlobalMethod método, que retorna um MethodBuilder objeto.

Os métodos globais devem ser estáticos. Se um módulo dinâmico contiver métodos globais, o método ModuleBuilder.CreateGlobalFunctions deverá ser chamado antes de persistir o módulo dinâmico ou o assembly dinâmico que contém, pois o common language runtime adiará a correção do módulo dinâmico até que todas as funções globais tenham sido definidas.

Um método nativo global é definido usando o ModuleBuilder.DefinePInvokeMethod método. Os métodos PInvoke (invocação de plataforma) não devem ser declarados abstratos ou virtuais. O runtime define o MethodAttributes.PinvokeImpl atributo para um método de invocação de plataforma.

Métodos como membros de tipos

Um método é definido como um membro de tipo usando o TypeBuilder.DefineMethod método, que retorna um MethodBuilder objeto.

O DefineParameter método é usado para definir o nome e os atributos de parâmetro de um parâmetro ou do valor retornado. O ParameterBuilder objeto retornado por esse método representa um parâmetro ou o valor retornado. O ParameterBuilder objeto pode ser usado para definir o marshaling, definir o valor da constante e aplicar atributos personalizados.

Atributos

Os membros da MethodAttributes enumeração definem o caractere preciso de um método dinâmico:

Problemas conhecidos