Partilhar via


MethodBuilder Classe

Definição

Define e representa um método (ou construtor) em uma classe dinâmica.

public ref class MethodBuilder sealed : System::Reflection::MethodInfo
public ref class MethodBuilder abstract : System::Reflection::MethodInfo
public ref class MethodBuilder sealed : System::Reflection::MethodInfo, System::Runtime::InteropServices::_MethodBuilder
public sealed class MethodBuilder : System.Reflection.MethodInfo
public abstract class MethodBuilder : System.Reflection.MethodInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class MethodBuilder : System.Reflection.MethodInfo, System.Runtime.InteropServices._MethodBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class MethodBuilder : System.Reflection.MethodInfo, System.Runtime.InteropServices._MethodBuilder
type MethodBuilder = class
    inherit MethodInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type MethodBuilder = class
    inherit MethodInfo
    interface _MethodBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodBuilder = class
    inherit MethodInfo
    interface _MethodBuilder
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Public MustInherit Class MethodBuilder
Inherits MethodInfo
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Implements _MethodBuilder
Herança
Atributos
Implementações

Exemplos

O exemplo a seguir usa a MethodBuilder classe para criar um método dentro de um tipo dinâmico.

using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;

void AddMethodDynamically( TypeBuilder^ myTypeBld, 
                           String^ mthdName, 
                           array<Type^>^ mthdParams, 
                           Type^ returnType, 
                           String^ mthdAction )
{
   MethodBuilder^ myMthdBld = myTypeBld->DefineMethod( mthdName, static_cast<MethodAttributes>(MethodAttributes::Public | MethodAttributes::Static), returnType, mthdParams );
   ILGenerator^ ILOut = myMthdBld->GetILGenerator();
   int numParams = mthdParams->Length;
   for ( Byte x = 0; x < numParams; x++ )
   {
      ILOut->Emit( OpCodes::Ldarg_S, x );

   }
   if ( numParams > 1 )
   {
      for ( int y = 0; y < (numParams - 1); y++ )
      {
         if ( mthdAction->Equals( "A" ) )
                  ILOut->Emit( OpCodes::Add );
         else
         if ( mthdAction->Equals( "M" ) )
                  ILOut->Emit( OpCodes::Mul );
         else
                  ILOut->Emit( OpCodes::Add );

      }
   }

   ILOut->Emit( OpCodes::Ret );
};

void main()
{
   AppDomain^ myDomain = AppDomain::CurrentDomain;
   AssemblyName^ asmName = gcnew AssemblyName;
   asmName->Name = "MyDynamicAsm";
   AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( asmName, 
                                                                    AssemblyBuilderAccess::RunAndSave );
   ModuleBuilder^ myModule = myAsmBuilder->DefineDynamicModule( "MyDynamicAsm", 
                                                                "MyDynamicAsm.dll" );
   TypeBuilder^ myTypeBld = myModule->DefineType( "MyDynamicType", 
                                                  TypeAttributes::Public );
   
   // Get info from the user to build the method dynamically.
   Console::WriteLine( "Let's build a simple method dynamically!" );
   Console::WriteLine( "Please enter a few numbers, separated by spaces." );
   String^ inputNums = Console::ReadLine();
   Console::Write( "Do you want to [A]dd (default) or [M]ultiply these numbers? " );
   String^ myMthdAction = Console::ReadLine()->ToUpper();
   Console::Write( "Lastly, what do you want to name your new dynamic method? " );
   String^ myMthdName = Console::ReadLine();
   
   // Process inputNums into an array and create a corresponding Type array
   int index = 0;
   array<String^>^inputNumsList = inputNums->Split();
   array<Type^>^myMthdParams = gcnew array<Type^>(inputNumsList->Length);
   array<Object^>^inputValsList = gcnew array<Object^>(inputNumsList->Length);
   for each (String^ inputNum in inputNumsList)
   {
      inputValsList[ index ] = Convert::ToInt32( inputNum );
      myMthdParams[ index ] = int::typeid;
      index++;
   }

   
   // Now, call the method building method with the parameters, passing the
   // TypeBuilder by reference.
   AddMethodDynamically( myTypeBld, 
                         myMthdName, 
                         myMthdParams, 
                         int::typeid, 
                         myMthdAction );
   Type^ myType = myTypeBld->CreateType();

   Console::WriteLine( "---" );
   Console::WriteLine( "The result of {0} the inputted values is: {1}", 
                       ((myMthdAction->Equals( "M" )) ? "multiplying" : "adding"), 
                       myType->InvokeMember( myMthdName, 
                                             BindingFlags::InvokeMethod | BindingFlags::Public | BindingFlags::Static, 
                       nullptr, 
                       nullptr, 
                       inputValsList ) );
   Console::WriteLine( "---" );
   
   // Let's take a look at the method we created.
   // If you are interested in seeing the MSIL generated dynamically for the method
   // your program generated, change to the directory where you ran the compiled
   // code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
   // of manifest contents appears, click on "MyDynamicType" and then on the name of
   // of the method you provided during execution.

   myAsmBuilder->Save( "MyDynamicAsm.dll" );

   MethodInfo^ myMthdInfo = myType->GetMethod( myMthdName );
   Console::WriteLine( "Your Dynamic Method: {0};", myMthdInfo );
}

using System;
using System.Reflection;
using System.Reflection.Emit;

class DemoMethodBuilder
{
    public static void AddMethodDynamically (TypeBuilder myTypeBld,
                                             string mthdName,
                                             Type[] mthdParams,
                                             Type returnType,
                                             string mthdAction)
    {

        MethodBuilder myMthdBld = myTypeBld.DefineMethod(
                                             mthdName,
                                             MethodAttributes.Public |
                                             MethodAttributes.Static,
                                             returnType,
                                             mthdParams);

        ILGenerator ILout = myMthdBld.GetILGenerator();

        int numParams = mthdParams.Length;

        for (byte x=0; x < numParams; x++)
        {
            ILout.Emit(OpCodes.Ldarg_S, x);
        }

        if (numParams > 1)
        {
            for (int y=0; y<(numParams-1); y++)
            {
                switch (mthdAction)
                {
                    case "A": ILout.Emit(OpCodes.Add);
                              break;
                    case "M": ILout.Emit(OpCodes.Mul);
                              break;
                    default: ILout.Emit(OpCodes.Add);
                              break;
                }
            }
        }
        ILout.Emit(OpCodes.Ret);
    }

    public static void Main()
    {
        AppDomain myDomain = AppDomain.CurrentDomain;
        AssemblyName asmName = new AssemblyName();
        asmName.Name = "MyDynamicAsm";

        AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
                                       asmName,
                                       AssemblyBuilderAccess.RunAndSave);

        ModuleBuilder myModule = myAsmBuilder.DefineDynamicModule("MyDynamicAsm",
                                                                  "MyDynamicAsm.dll");

        TypeBuilder myTypeBld = myModule.DefineType("MyDynamicType",
                                                    TypeAttributes.Public);

        // Get info from the user to build the method dynamically.
        Console.WriteLine("Let's build a simple method dynamically!");
        Console.WriteLine("Please enter a few numbers, separated by spaces.");
        string inputNums = Console.ReadLine();
        Console.Write("Do you want to [A]dd (default) or [M]ultiply these numbers? ");
        string myMthdAction = Console.ReadLine().ToUpper();
        Console.Write("Lastly, what do you want to name your new dynamic method? ");
        string myMthdName = Console.ReadLine();

        // Process inputNums into an array and create a corresponding Type array
        int index = 0;
        string[] inputNumsList = inputNums.Split();

        Type[] myMthdParams = new Type[inputNumsList.Length];
        object[] inputValsList = new object[inputNumsList.Length];

        foreach (string inputNum in inputNumsList)
        {
            inputValsList[index] = (object)Convert.ToInt32(inputNum);
                myMthdParams[index] = typeof(int);
                index++;
        }

        // Now, call the method building method with the parameters, passing the
        // TypeBuilder by reference.
        AddMethodDynamically(myTypeBld,
                             myMthdName,
                             myMthdParams,
                             typeof(int),
                             myMthdAction);

        Type myType = myTypeBld.CreateType();

        Console.WriteLine("---");
        Console.WriteLine("The result of {0} the inputted values is: {1}",
                          ((myMthdAction == "M") ? "multiplying" : "adding"),
                          myType.InvokeMember(myMthdName,
                          BindingFlags.InvokeMethod | BindingFlags.Public |
                          BindingFlags.Static,
                          null,
                          null,
                          inputValsList));
        Console.WriteLine("---");

        // Let's take a look at the method we created.
        // If you are interested in seeing the MSIL generated dynamically for the method
        // your program generated, change to the directory where you ran the compiled
        // code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
        // of manifest contents appears, click on "MyDynamicType" and then on the name of
        // of the method you provided during execution.

        myAsmBuilder.Save("MyDynamicAsm.dll");

        MethodInfo myMthdInfo = myType.GetMethod(myMthdName);
        Console.WriteLine("Your Dynamic Method: {0};", myMthdInfo.ToString());
    }
}
Imports System.Reflection
Imports System.Reflection.Emit

Class DemoMethodBuilder
   
   Public Shared Sub AddMethodDynamically(ByVal myTypeBld As TypeBuilder, _
                                          ByVal mthdName As String, _
                                          ByVal mthdParams() As Type, _
                                          ByVal returnType As Type, _
                                          ByVal mthdAction As String)
      
      Dim myMthdBld As MethodBuilder = myTypeBld.DefineMethod(mthdName, _
                                       MethodAttributes.Public Or MethodAttributes.Static, _
                                       returnType, _
                                       mthdParams)
      
      Dim ILout As ILGenerator = myMthdBld.GetILGenerator()
      
      Dim numParams As Integer = mthdParams.Length
      
      Dim x As Byte
      For x = 0 To numParams - 1
         ILout.Emit(OpCodes.Ldarg_S, x)
      Next x
      
      If numParams > 1 Then
         Dim y As Integer
         For y = 0 To (numParams - 1) - 1
            Select Case mthdAction
               Case "A"
                  ILout.Emit(OpCodes.Add)
               Case "M"
                  ILout.Emit(OpCodes.Mul)
               Case Else
                  ILout.Emit(OpCodes.Add)
            End Select
         Next y
      End If
      ILout.Emit(OpCodes.Ret)
   End Sub 
    
   
   Public Shared Sub Main()
      
      Dim myDomain As AppDomain = AppDomain.CurrentDomain
      Dim asmName As New AssemblyName()
      asmName.Name = "MyDynamicAsm"
      
      Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly(asmName, _
                                            AssemblyBuilderAccess.RunAndSave)
      
      Dim myModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MyDynamicAsm", _
                                                                       "MyDynamicAsm.dll")
      
      Dim myTypeBld As TypeBuilder = myModule.DefineType("MyDynamicType", TypeAttributes.Public)
      
      ' Get info from the user to build the method dynamically.
      Console.WriteLine("Let's build a simple method dynamically!")
      Console.WriteLine("Please enter a few numbers, separated by spaces.")
      Dim inputNums As String = Console.ReadLine()
      Console.Write("Do you want to [A]dd (default) or [M]ultiply these numbers? ")
      Dim myMthdAction As String = Console.ReadLine().ToUpper()
      Console.Write("Lastly, what do you want to name your new dynamic method? ")
      Dim myMthdName As String = Console.ReadLine()
      
      ' Process inputNums into an array and create a corresponding Type array 
      Dim index As Integer = 0
      Dim inputNumsList As String() = inputNums.Split()
      
      Dim myMthdParams(inputNumsList.Length - 1) As Type
      Dim inputValsList(inputNumsList.Length - 1) As Object
      
      
      Dim inputNum As String
      For Each inputNum In  inputNumsList
         inputValsList(index) = CType(Convert.ToInt32(inputNum), Object)
         myMthdParams(index) = GetType(Integer)
         index += 1
      Next inputNum
      
      ' Now, call the method building method with the parameters, passing the 
      ' TypeBuilder by reference.
      AddMethodDynamically(myTypeBld, myMthdName, myMthdParams, GetType(Integer), myMthdAction)
      
      Dim myType As Type = myTypeBld.CreateType()
     
      Dim description as String 
      If myMthdAction = "M" Then
         description = "multiplying"
      Else
         description = "adding"
      End If

      Console.WriteLine("---")
      Console.WriteLine("The result of {0} the values is: {1}", _
                         description, _
                         myType.InvokeMember(myMthdName, _
                                             BindingFlags.InvokeMethod _
                                               Or BindingFlags.Public _
                                               Or BindingFlags.Static, _
                                             Nothing, _
                                             Nothing, _
                                             inputValsList)) 
      Console.WriteLine("---")

      ' If you are interested in seeing the MSIL generated dynamically for the method
      ' your program generated, change to the directory where you ran the compiled
      ' code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
      ' of manifest contents appears, click on "MyDynamicType" and then on the name of
      ' of the method you provided during execution.
 
      myAsmBuilder.Save("MyDynamicAsm.dll") 

      Dim myMthdInfo As MethodInfo = myType.GetMethod(myMthdName)
      Console.WriteLine("Your Dynamic Method: {0};", myMthdInfo.ToString())
   End Sub 
End Class

Comentários

Para obter mais informações sobre essa API, consulte Comentários da API complementar para MethodBuilder.

Construtores

MethodBuilder()

Inicializa uma nova instância da classe MethodBuilder.

Propriedades

Attributes

Recupera os atributos para este método.

CallingConvention

Retorna a convenção de chamada do método.

ContainsGenericParameters

Não tem suporte para esse tipo.

ContainsGenericParameters

Obtém um valor que indica se um método genérico contém parâmetros de tipo genérico não atribuídos.

(Herdado de MethodInfo)
CustomAttributes

Obtém uma coleção que contém os atributos personalizados desse membro.

(Herdado de MemberInfo)
DeclaringType

Retorna o tipo que declara a este método.

InitLocals

Obtém ou define um valor booliano que especifica se as variáveis locais nesse método são inicializadas em zero. O valor padrão dessa propriedade é true.

InitLocalsCore

Quando substituído em uma classe derivada, obtém ou define um valor que indica se as variáveis locais nesse método são inicializadas como zero.

IsAbstract

Obtém um valor que indica se o método é abstrato.

(Herdado de MethodBase)
IsAssembly

Obtém um valor que indica se a visibilidade potencial deste método ou construtor é descrita por Assembly; ou seja, o construtor ou método é visível no máximo para outros tipos no mesmo assembly e não é visível a tipos derivados fora do assembly.

(Herdado de MethodBase)
IsCollectible

Obtém um valor que indica se este objeto MemberInfo faz parte de um assembly mantido em uma coleção AssemblyLoadContext.

(Herdado de MemberInfo)
IsConstructedGenericMethod

Define e representa um método (ou construtor) em uma classe dinâmica.

IsConstructedGenericMethod

Define e representa um método (ou construtor) em uma classe dinâmica.

(Herdado de MethodBase)
IsConstructor

Obtém um valor que indica se o método é um construtor.

(Herdado de MethodBase)
IsFamily

Obtém um valor que indica se a visibilidade deste método ou construtor é descrita por Family; ou seja, o método ou o construtor é visível somente dentro de sua classe e de classes derivadas.

(Herdado de MethodBase)
IsFamilyAndAssembly

Obtém um valor que indica se a visibilidade deste método ou construtor é descrita por FamANDAssem; ou seja, o método ou o construtor pode ser chamado por classes derivadas, mas apenas se estiverem no mesmo assembly.

(Herdado de MethodBase)
IsFamilyOrAssembly

Obtém um valor que indica se a visibilidade potencial deste método ou construtor é descrita por FamORAssem; ou seja, o método ou o construtor pode ser chamado por classes derivadas, não importa em que lugar elas estejam e por classes no mesmo assembly.

(Herdado de MethodBase)
IsFinal

Obtém um valor que indica se esse método é final.

(Herdado de MethodBase)
IsGenericMethod

Obtém um valor que indica se o método é um método genérico.

IsGenericMethod

Obtém um valor que indica se o método atual é um método genérico.

(Herdado de MethodInfo)
IsGenericMethodDefinition

Obtém um valor que indica se o objeto MethodBuilder atual representa a definição de um método genérico.

IsGenericMethodDefinition

Obtém um valor que indica se o MethodInfo atual representa a definição de um método genérico.

(Herdado de MethodInfo)
IsHideBySig

Obtém um valor que indica se apenas um membro do mesmo tipo, com exatamente a mesma assinatura, está oculto na classe derivada.

(Herdado de MethodBase)
IsPrivate

Obtém um valor que indica se este membro é privado.

(Herdado de MethodBase)
IsPublic

Obtém um valor que indica se este é um método público.

(Herdado de MethodBase)
IsSecurityCritical

Gera um NotSupportedException em todos os casos.

IsSecurityCritical

Obtém um valor que indica se o método ou o construtor atual é crítico para segurança ou crítico para segurança e disponível no código transparente no nível de confiança atual e, portanto, pode realizar operações críticas.

(Herdado de MethodBase)
IsSecuritySafeCritical

Gera um NotSupportedException em todos os casos.

IsSecuritySafeCritical

Obtém um valor que indica se o método ou o construtor atual é crítico para segurança e disponível no código transparente no nível de confiança atual; ou seja, se ele pode realizar operações críticas e ser acessado pelo código transparente.

(Herdado de MethodBase)
IsSecurityTransparent

Gera um NotSupportedException em todos os casos.

IsSecurityTransparent

Obtém um valor que indica que se o método ou o construtor atual é transparente no nível de confiança atual e, portanto, não é pode realizar operações críticas.

(Herdado de MethodBase)
IsSpecialName

Obtém um valor que indica se esse método tem um nome especial.

(Herdado de MethodBase)
IsStatic

Obtém um valor que indica se o método é static.

(Herdado de MethodBase)
IsVirtual

Obtém um valor que indica se o método é virtual.

(Herdado de MethodBase)
MemberType

Obtém um valor MemberTypes que indica que esse membro é um método.

(Herdado de MethodInfo)
MetadataToken

Obtém um token que identifica o módulo dinâmico atual nos metadados.

MetadataToken

Obtém um valor que identifica um elemento de metadados.

(Herdado de MemberInfo)
MethodHandle

Recupera o identificador interno para o método. Use esse identificador para acessar o identificador de metadados subjacente.

MethodHandle

Obtém um identificador para a representação interna de metadados de um método.

(Herdado de MethodBase)
MethodImplementationFlags

Define e representa um método (ou construtor) em uma classe dinâmica.

MethodImplementationFlags

Obtém os sinalizadores MethodImplAttributes que especificam os atributos de uma implementação de método.

(Herdado de MethodBase)
Module

Obtém o módulo no qual o método atual está sendo definido.

Module

Obtém o módulo no qual o tipo que declara o membro representado pelo MemberInfo atual está definido.

(Herdado de MemberInfo)
Name

Recupera o nome desse método.

ReflectedType

Recupera a classe que foi usada em reflexão para obter esse objeto.

ReflectedType

Obtém o objeto de classe que foi usado para obter esta instância de MemberInfo.

(Herdado de MemberInfo)
ReturnParameter

Obtém um objeto ParameterInfo que contém informações sobre o tipo de retorno do método, como se o tipo de retorno tem modificadores personalizados.

ReturnParameter

Obtém um objeto ParameterInfo que contém informações sobre o tipo de retorno do método, como se o tipo de retorno tem modificadores personalizados.

(Herdado de MethodInfo)
ReturnType

Obtém o tipo de retorno do método representado por esse MethodBuilder.

ReturnType

Obtém o tipo de retorno desse método.

(Herdado de MethodInfo)
ReturnTypeCustomAttributes

Retorna os atributos personalizados do tipo de retorno do método.

ReturnTypeCustomAttributes

Obtém os atributos personalizados para o tipo de retorno.

(Herdado de MethodInfo)
Signature

Recupera a assinatura do método.

Métodos

AddDeclarativeSecurity(SecurityAction, PermissionSet)

Adiciona a segurança declarativa a este método.

CreateDelegate(Type)

Cria um delegado do tipo especificado desse método.

(Herdado de MethodInfo)
CreateDelegate(Type, Object)

Cria um delegado do tipo especificado com o destino especificado deste método.

(Herdado de MethodInfo)
CreateDelegate<T>()

Cria um delegado do tipo T com base nesse método.

(Herdado de MethodInfo)
CreateDelegate<T>(Object)

Cria um delegado do tipo T com o destino especificado neste método.

(Herdado de MethodInfo)
CreateMethodBody(Byte[], Int32)

Cria o corpo do método usando uma matriz de bytes fornecida de instruções do MSIL (Microsoft Intermediate Language).

DefineGenericParameters(String[])

Define o número de parâmetros de tipo genérico para o método atual, especifica seus nomes e retorna uma matriz de objetos GenericTypeParameterBuilder que pode ser usada para definir suas restrições.

DefineGenericParametersCore(String[])

Quando substituído em uma classe derivada, define o número de parâmetros de tipo genérico para o método atual, especifica seus nomes e retorna uma matriz de GenericTypeParameterBuilder objetos que podem ser usados para definir suas restrições.

DefineParameter(Int32, ParameterAttributes, String)

Define os atributos de parâmetro e o nome de um parâmetro deste método, ou do valor retornado deste método. Retorna um ParameterBuilder que pode ser usado para aplicar os atributos personalizados.

DefineParameterCore(Int32, ParameterAttributes, String)

Quando substituído em uma classe derivada, define um parâmetro ou parâmetro de retorno para esse método.

Equals(Object)

Determina se o objeto especificado é igual a esta instância.

GetBaseDefinition()

Retorna a implementação de base para um método.

GetBaseDefinition()

Quando substituído em uma classe derivada, retorna o objeto MethodInfo para o método sobre a classe base direta ou indireta em que o método representado por esta instância foi declarado.

(Herdado de MethodInfo)
GetCustomAttributes(Boolean)

Retorna todos os atributos personalizados definidos para esse método.

GetCustomAttributes(Boolean)

Quando substituído em uma classe derivada, retorna uma matriz de todos os atributos personalizados aplicados a esse membro.

(Herdado de MemberInfo)
GetCustomAttributes(Type, Boolean)

Retorna os atributos personalizados identificados pelo tipo determinado.

GetCustomAttributes(Type, Boolean)

Quando substituído em uma classe derivada, retorna uma matriz de atributos personalizados aplicados a esse membro e identificados por Type.

(Herdado de MemberInfo)
GetCustomAttributesData()

Retorna uma lista de objetos CustomAttributeData que representam dados sobre os atributos que foram aplicados ao membro de destino.

(Herdado de MemberInfo)
GetGenericArguments()

Retorna uma matriz de objetos GenericTypeParameterBuilder que representam os parâmetros de tipo do método, se for genérico.

GetGenericArguments()

Retorna uma matriz de objetos Type que representam os argumentos de tipo de um método genérico ou os parâmetros de tipo de uma definição de método genérico.

(Herdado de MethodInfo)
GetGenericMethodDefinition()

Retorna este método.

GetGenericMethodDefinition()

Retorna um objeto MethodInfo que representa uma definição de método genérico da qual o método atual pode ser criado.

(Herdado de MethodInfo)
GetHashCode()

Obtém o código hash para este método.

GetILGenerator()

Retorna um ILGenerator para esse método com um tamanho de fluxo MSIL (linguagem intermediária da Microsoft) padrão de 64 bytes.

GetILGenerator(Int32)

Retorna um ILGenerator pra esse método com o tamanho de fluxo MSIL (linguagem intermediária da Microsoft) especificado.

GetILGeneratorCore(Int32)

Quando substituído em uma classe derivada, obtém um ILGenerator que pode ser usado para emitir um corpo de método para esse método.

GetMethodBody()

Quando substituído em uma classe derivada, obtém um objeto MethodBody que fornece acesso ao fluxo MSIL, variáveis locais e exceções para o método atual.

(Herdado de MethodBase)
GetMethodImplementationFlags()

Retorna os sinalizadores de implementação para o método.

GetMethodImplementationFlags()

Quando substituído em uma classe derivada, retorna os sinalizadores MethodImplAttributes.

(Herdado de MethodBase)
GetModule()

Retorna uma referência para o módulo que contém este método.

GetParameters()

Retorna os parâmetros deste método.

GetToken()

Retorna o MethodToken que representa o token para este método.

GetType()

Descobre os atributos de um método e fornece acesso aos metadados de método.

(Herdado de MethodInfo)
HasSameMetadataDefinitionAs(MemberInfo)

Define e representa um método (ou construtor) em uma classe dinâmica.

(Herdado de MemberInfo)
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)

Invoca dinamicamente o método refletido por esta instância no objeto fornecido, passando os parâmetros especificados e sob as restrições do associador determinado.

Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)

Quando substituído em uma classe derivada, invoca o método ou o construtor refletido com parâmetros especificados.

(Herdado de MethodBase)
Invoke(Object, Object[])

Invoca o método ou o construtor representado pela instância atual, usando os parâmetros especificados.

(Herdado de MethodInfo)
IsDefined(Type, Boolean)

Verifica se o tipo de atributo personalizado especificado é definido.

IsDefined(Type, Boolean)

Quando substituído em uma classe derivada, indica se um ou mais atributos do tipo especificado ou de seus tipos derivados são aplicados a esse membro.

(Herdado de MemberInfo)
MakeGenericMethod(Type[])

Retorna um método genérico construído da definição de método genérico atual usando os argumentos de tipo genérico especificados.

MakeGenericMethod(Type[])

Substitui os elementos de uma matriz de tipos pelos parâmetros de tipo da definição de método genérico atual e retorna um objeto MethodInfo que representa o método construído resultante.

(Herdado de MethodInfo)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
SetCustomAttribute(ConstructorInfo, Byte[])

Define um atributo personalizado usando um blob de atributo personalizado especificado.

SetCustomAttribute(CustomAttributeBuilder)

Define um atributo personalizado usando um construtor de atributos personalizados.

SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>)

Quando substituído em uma classe derivada, define um atributo personalizado neste assembly.

SetImplementationFlags(MethodImplAttributes)

Define os sinalizadores de implementação para este método.

SetImplementationFlagsCore(MethodImplAttributes)

Quando substituído em uma classe derivada, define os sinalizadores de implementação para esse método.

SetMarshal(UnmanagedMarshal)
Obsoleto.

Define informações de marshaling para o tipo retornado desse método.

SetMethodBody(Byte[], Int32, Byte[], IEnumerable<ExceptionHandler>, IEnumerable<Int32>)

Cria o corpo do método usando uma matriz de bytes especificada de instruções MSIL (linguagem intermediária da Microsoft).

SetParameters(Type[])

Define o número e tipos de parâmetros para um método.

SetReturnType(Type)

Define o tipo retornado do método.

SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][])

Define a assinatura do método, incluindo o tipo retornado, os tipos de parâmetro e os modificadores personalizados obrigatórios e opcionais do tipo retornado e dos tipos de parâmetro.

SetSignatureCore(Type, Type[], Type[], Type[], Type[][], Type[][])

Quando substituído em uma classe derivada, define a assinatura do método, incluindo o tipo de retorno, os tipos de parâmetro e os modificadores personalizados obrigatórios e opcionais dos tipos de parâmetro e tipo de retorno.

SetSymCustomAttribute(String, Byte[])

Define um atributo personalizado simbólico usando um blob.

ToString()

Retorna esta instância MethodBuilder como uma cadeia de caracteres.

Implantações explícitas de interface

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de MemberInfo)
_MemberInfo.GetType()

Obtém um objeto Type que representa a classe MemberInfo.

(Herdado de MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface.

(Herdado de MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de MemberInfo)
_MethodBase.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de MethodBase)
_MethodBase.GetType()

Para obter uma descrição desse membro, confira GetType().

(Herdado de MethodBase)
_MethodBase.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface.

(Herdado de MethodBase)
_MethodBase.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de MethodBase)
_MethodBase.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de MethodBase)
_MethodBase.IsAbstract

Para obter uma descrição desse membro, confira IsAbstract.

(Herdado de MethodBase)
_MethodBase.IsAssembly

Para obter uma descrição desse membro, confira IsAssembly.

(Herdado de MethodBase)
_MethodBase.IsConstructor

Para obter uma descrição desse membro, confira IsConstructor.

(Herdado de MethodBase)
_MethodBase.IsFamily

Para obter uma descrição desse membro, confira IsFamily.

(Herdado de MethodBase)
_MethodBase.IsFamilyAndAssembly

Para obter uma descrição desse membro, confira IsFamilyAndAssembly.

(Herdado de MethodBase)
_MethodBase.IsFamilyOrAssembly

Para obter uma descrição desse membro, confira IsFamilyOrAssembly.

(Herdado de MethodBase)
_MethodBase.IsFinal

Para obter uma descrição desse membro, confira IsFinal.

(Herdado de MethodBase)
_MethodBase.IsHideBySig

Para obter uma descrição desse membro, confira IsHideBySig.

(Herdado de MethodBase)
_MethodBase.IsPrivate

Para obter uma descrição desse membro, confira IsPrivate.

(Herdado de MethodBase)
_MethodBase.IsPublic

Para obter uma descrição desse membro, confira IsPublic.

(Herdado de MethodBase)
_MethodBase.IsSpecialName

Para obter uma descrição desse membro, confira IsSpecialName.

(Herdado de MethodBase)
_MethodBase.IsStatic

Para obter uma descrição desse membro, confira IsStatic.

(Herdado de MethodBase)
_MethodBase.IsVirtual

Para obter uma descrição desse membro, confira IsVirtual.

(Herdado de MethodBase)
_MethodBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

_MethodBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface.

_MethodBuilder.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

_MethodBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

_MethodInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de MethodInfo)
_MethodInfo.GetType()

Dá acesso ao GetType() método do COM.

(Herdado de MethodInfo)
_MethodInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de MethodInfo)
_MethodInfo.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de MethodInfo)
_MethodInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de MethodInfo)
ICustomAttributeProvider.GetCustomAttributes(Boolean)

Retorna uma matriz de todos os atributos personalizados definidos neste membro, exceto atributos nomeados ou então uma matriz vazia, se não houver nenhum atributo personalizado.

(Herdado de MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Retorna uma matriz de atributos personalizados definidos neste membro, identificados por tipo ou então uma matriz vazia, se não houver nenhum atributo personalizado desse tipo.

(Herdado de MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

Indica se uma ou mais instâncias de attributeType estão definidas nesse membro.

(Herdado de MemberInfo)

Métodos de Extensão

GetCustomAttribute(MemberInfo, Type)

Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado.

GetCustomAttribute(MemberInfo, Type, Boolean)

Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro.

GetCustomAttribute<T>(MemberInfo)

Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado.

GetCustomAttribute<T>(MemberInfo, Boolean)

Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro.

GetCustomAttributes(MemberInfo)

Recupera uma coleção de atributos personalizados que são aplicados a um membro especificado.

GetCustomAttributes(MemberInfo, Boolean)

Recupera uma coleção de atributos personalizados aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro.

GetCustomAttributes(MemberInfo, Type)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado.

GetCustomAttributes(MemberInfo, Type, Boolean)

Recupera uma coleção de atributos personalizados de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro.

GetCustomAttributes<T>(MemberInfo)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado.

GetCustomAttributes<T>(MemberInfo, Boolean)

Recupera uma coleção de atributos personalizados de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro.

IsDefined(MemberInfo, Type)

Indica se os atributos personalizados de um tipo especificados são aplicados a um membro especificado.

IsDefined(MemberInfo, Type, Boolean)

Indica se os atributos personalizados de um tipo especificado são aplicados a um membro especificado e, opcionalmente, aplicados a seus ancestrais.

GetMetadataToken(MemberInfo)

Obtém um token de metadados para o membro fornecido, se disponível.

HasMetadataToken(MemberInfo)

Retorna um valor que indica se um token de metadados está disponível para o membro especificado.

GetBaseDefinition(MethodInfo)

Define e representa um método (ou construtor) em uma classe dinâmica.

GetRuntimeBaseDefinition(MethodInfo)

Recupera um objeto que representa o método especificado na classe base direta ou indireta em que o método foi declarado pela primeira vez.

Aplica-se a