MethodBuilder Classe

Definição

Define e representa um método (ou construtor) em uma classe dinâmica.Defines and represents a method (or constructor) on a dynamic class.

public ref class MethodBuilder sealed : System::Reflection::MethodInfo
public ref class MethodBuilder sealed : System::Reflection::MethodInfo, System::Runtime::InteropServices::_MethodBuilder
public ref class MethodBuilder abstract : System::Reflection::MethodInfo
public sealed 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
public abstract class MethodBuilder : System.Reflection.MethodInfo
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 NotInheritable Class MethodBuilder
Inherits MethodInfo
Implements _MethodBuilder
Public MustInherit Class MethodBuilder
Inherits MethodInfo
Herança
Atributos
Implementações

Exemplos

O exemplo a seguir usa a MethodBuilder classe para criar um método em um tipo dinâmico.The following example uses the MethodBuilder class to create a method within a dynamic type.

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

A MethodBuilder classe é usada para descrever totalmente um método na MSIL (Microsoft Intermediate Language), incluindo o nome, os atributos, a assinatura e o corpo do método.The MethodBuilder class is used to fully describe a method in Microsoft intermediate language (MSIL), including the name, attributes, signature, and method body. Ele é usado em conjunto com a TypeBuilder classe para criar classes em tempo de execução.It is used in conjunction with the TypeBuilder class to create classes at runtime.

Métodos e métodos globais como membros de tipoGlobal methods and methods as type members

Você pode usar a emissão de reflexão para definir métodos globais e definir métodos como membros de tipo.You can use reflection emit to define global methods and to define methods as type members. As APIs que definem métodos retornam MethodBuilder objetos.The APIs that define methods return MethodBuilder objects.

Métodos globaisGlobal methods

Um método global é definido usando o ModuleBuilder.DefineGlobalMethod método, que retorna um objeto MethodBuilder .A global method is defined by using the ModuleBuilder.DefineGlobalMethod method, which returns a MethodBuilder object.

Os métodos globais devem ser estáticos.Global methods must be static. Se um módulo dinâmico contiver métodos globais, o ModuleBuilder.CreateGlobalFunctions método deverá ser chamado antes de persistir o módulo dinâmico ou o assembly dinâmico que o contém porque o Common Language Runtime adia a correção do módulo dinâmico até que todas as funções globais tenham sido definidas.If a dynamic module contains global methods, the ModuleBuilder.CreateGlobalFunctions method must be called before persisting the dynamic module or the containing dynamic assembly because the common language runtime postpones fixing up the dynamic module until all global functions have been defined.

Um método nativo global é definido usando o ModuleBuilder.DefinePInvokeMethod método.A global native method is defined by using the ModuleBuilder.DefinePInvokeMethod method. Os métodos de invocação de plataforma (PInvoke) não devem ser declarados abstract ou virtual.Platform invoke (PInvoke) methods must not be declared abstract or virtual. O tempo de execução define o MethodAttributes.PinvokeImpl atributo para um método de invocação de plataforma.The runtime sets the MethodAttributes.PinvokeImpl attribute for a platform invoke method.

Métodos como membros de tiposMethods as members of types

Um método é definido como um membro de tipo usando o TypeBuilder.DefineMethod método, que retorna um MethodBuilder objeto.A method is defined as a type member by using the TypeBuilder.DefineMethod method, which returns a MethodBuilder object.

O DefineParameter método é usado para definir o nome e os atributos de parâmetro de um parâmetro ou do valor de retorno.The DefineParameter method is used to set the name and parameter attributes of a parameter, or of the return value. O ParameterBuilder objeto retornado por esse método representa um parâmetro ou o valor de retorno.The ParameterBuilder object returned by this method represents a parameter or the return value. O ParameterBuilder objeto pode ser usado para definir o marshaling, para definir o valor constante e para aplicar atributos personalizados.The ParameterBuilder object can be used to set the marshaling, to set the constant value, and to apply custom attributes.

AtributosAttributes

Os membros da MethodAttributes Enumeração definem o caractere preciso de um método dinâmico:Members of the MethodAttributes enumeration define the precise character of a dynamic method:

Problemas ConhecidosKnown Issues

Construtores

MethodBuilder()

Propriedades

Attributes

Recupera os atributos para este método.Retrieves the attributes for this method.

CallingConvention

Retorna a convenção de chamada do método.Returns the calling convention of the method.

CallingConvention

Obtém um valor que indica as convenções de chamada deste método.Gets a value indicating the calling conventions for this method.

(Herdado de MethodBase)
ContainsGenericParameters

Não tem suporte para esse tipo.Not supported for this type.

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.Gets a value that indicates whether a generic method contains unassigned generic type parameters.

(Herdado de MethodInfo)
CustomAttributes

Obtém uma coleção que contém os atributos personalizados desse membro.Gets a collection that contains this member's custom attributes.

(Herdado de MemberInfo)
DeclaringType

Retorna o tipo que declara a este método.Returns the type that declares this method.

InitLocals

Obtém ou define um valor booliano que especifica se as variáveis locais nesse método são inicializadas em zero.Gets or sets a Boolean value that specifies whether the local variables in this method are zero initialized. O valor padrão dessa propriedade é true.The default value of this property is true.

IsAbstract

Obtém um valor que indica se o método é abstrato.Gets a value indicating whether the method is abstract.

(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.Gets a value indicating whether the potential visibility of this method or constructor is described by Assembly; that is, the method or constructor is visible at most to other types in the same assembly, and is not visible to derived types outside the 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.Gets a value that indicates whether this MemberInfo object is part of an assembly held in a collectible AssemblyLoadContext.

(Herdado de MemberInfo)
IsConstructedGenericMethod
IsConstructedGenericMethod (Herdado de MethodBase)
IsConstructor

Obtém um valor que indica se o método é um construtor.Gets a value indicating whether the method is a constructor.

(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.Gets a value indicating whether the visibility of this method or constructor is described by Family; that is, the method or constructor is visible only within its class and derived classes.

(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.Gets a value indicating whether the visibility of this method or constructor is described by FamANDAssem; that is, the method or constructor can be called by derived classes, but only if they are in the same 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.Gets a value indicating whether the potential visibility of this method or constructor is described by FamORAssem; that is, the method or constructor can be called by derived classes wherever they are, and by classes in the same assembly.

(Herdado de MethodBase)
IsFinal

Obtém um valor que indica se esse método é final.Gets a value indicating whether this method is final.

(Herdado de MethodBase)
IsGenericMethod

Obtém um valor que indica se o método é um método genérico.Gets a value indicating whether the method is a generic method.

IsGenericMethod

Obtém um valor que indica se o método atual é um método genérico.Gets a value indicating whether the current method is a generic method.

(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.Gets a value indicating whether the current MethodBuilder object represents the definition of a generic method.

IsGenericMethodDefinition

Obtém um valor que indica se o MethodInfo atual representa a definição de um método genérico.Gets a value indicating whether the current MethodInfo represents the definition of a generic method.

(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.Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class.

(Herdado de MethodBase)
IsPrivate

Obtém um valor que indica se este membro é privado.Gets a value indicating whether this member is private.

(Herdado de MethodBase)
IsPublic

Obtém um valor que indica se este é um método público.Gets a value indicating whether this is a public method.

(Herdado de MethodBase)
IsSecurityCritical

Gera um NotSupportedException em todos os casos.Throws a NotSupportedException in all cases.

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.Gets a value that indicates whether the current method or constructor is security-critical or security-safe-critical at the current trust level, and therefore can perform critical operations.

(Herdado de MethodBase)
IsSecuritySafeCritical

Gera um NotSupportedException em todos os casos.Throws a NotSupportedException in all cases.

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.Gets a value that indicates whether the current method or constructor is security-safe-critical at the current trust level; that is, whether it can perform critical operations and can be accessed by transparent code.

(Herdado de MethodBase)
IsSecurityTransparent

Gera um NotSupportedException em todos os casos.Throws a NotSupportedException in all cases.

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.Gets a value that indicates whether the current method or constructor is transparent at the current trust level, and therefore cannot perform critical operations.

(Herdado de MethodBase)
IsSpecialName

Obtém um valor que indica se esse método tem um nome especial.Gets a value indicating whether this method has a special name.

(Herdado de MethodBase)
IsStatic

Obtém um valor que indica se o método é static.Gets a value indicating whether the method is static.

(Herdado de MethodBase)
IsVirtual

Obtém um valor que indica se o método é virtual.Gets a value indicating whether the method is virtual.

(Herdado de MethodBase)
MemberType

Obtém um valor MemberTypes que indica que esse membro é um método.Gets a MemberTypes value indicating that this member is a method.

(Herdado de MethodInfo)
MetadataToken

Obtém um valor que identifica um elemento de metadados.Gets a value that identifies a metadata element.

(Herdado de MemberInfo)
MethodHandle

Recupera o identificador interno para o método.Retrieves the internal handle for the method. Use esse identificador para acessar o identificador de metadados subjacente.Use this handle to access the underlying metadata handle.

MethodHandle

Obtém um identificador para a representação interna de metadados de um método.Gets a handle to the internal metadata representation of a method.

(Herdado de MethodBase)
MethodImplementationFlags
MethodImplementationFlags

Obtém os sinalizadores MethodImplAttributes que especificam os atributos de uma implementação de método.Gets the MethodImplAttributes flags that specify the attributes of a method implementation.

(Herdado de MethodBase)
Module

Obtém o módulo no qual o método atual está sendo definido.Gets the module in which the current method is being defined.

Module

Obtém o módulo no qual o tipo que declara o membro representado pelo MemberInfo atual está definido.Gets the module in which the type that declares the member represented by the current MemberInfo is defined.

(Herdado de MemberInfo)
Name

Recupera o nome desse método.Retrieves the name of this method.

ReflectedType

Recupera a classe que foi usada em reflexão para obter esse objeto.Retrieves the class that was used in reflection to obtain this object.

ReflectedType

Obtém o objeto de classe que foi usado para obter esta instância de MemberInfo.Gets the class object that was used to obtain this instance of 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.Gets a ParameterInfo object that contains information about the return type of the method, such as whether the return type has custom modifiers.

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.Gets a ParameterInfo object that contains information about the return type of the method, such as whether the return type has custom modifiers.

(Herdado de MethodInfo)
ReturnType

Obtém o tipo de retorno do método representado por esse MethodBuilder.Gets the return type of the method represented by this MethodBuilder.

ReturnType

Obtém o tipo de retorno desse método.Gets the return type of this method.

(Herdado de MethodInfo)
ReturnTypeCustomAttributes

Retorna os atributos personalizados do tipo de retorno do método.Returns the custom attributes of the method's return type.

ReturnTypeCustomAttributes

Obtém os atributos personalizados para o tipo de retorno.Gets the custom attributes for the return type.

(Herdado de MethodInfo)
Signature

Recupera a assinatura do método.Retrieves the signature of the method.

Métodos

AddDeclarativeSecurity(SecurityAction, PermissionSet)

Adiciona a segurança declarativa a este método.Adds declarative security to this method.

CreateDelegate(Type)

Cria um delegado do tipo especificado desse método.Creates a delegate of the specified type from this method.

(Herdado de MethodInfo)
CreateDelegate(Type, Object)

Cria um delegado do tipo especificado com o destino especificado deste método.Creates a delegate of the specified type with the specified target from this method.

(Herdado de MethodInfo)
CreateDelegate<T>()

Cria um delegado do tipo T a partir deste método.Creates a delegate of type T from this method.

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

Cria um delegado do tipo T com o destino especificado neste método.Creates a delegate of type T with the specified target from this method.

(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).Creates the body of the method using a supplied byte array of Microsoft intermediate language (MSIL) instructions.

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.Sets the number of generic type parameters for the current method, specifies their names, and returns an array of GenericTypeParameterBuilder objects that can be used to define their constraints.

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.Sets the parameter attributes and the name of a parameter of this method, or of the return value of this method. Retorna um ParameterBuilder que pode ser usado para aplicar os atributos personalizados.Returns a ParameterBuilder that can be used to apply custom attributes.

Equals(Object)

Determina se o objeto especificado é igual a esta instância.Determines whether the given object is equal to this instance.

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Herdado de MethodInfo)
GetBaseDefinition()

Retorna a implementação de base para um método.Return the base implementation for a method.

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.When overridden in a derived class, returns the MethodInfo object for the method on the direct or indirect base class in which the method represented by this instance was first declared.

(Herdado de MethodInfo)
GetCustomAttributes(Boolean)

Retorna todos os atributos personalizados definidos para esse método.Returns all the custom attributes defined for this method.

GetCustomAttributes(Boolean)

Quando substituído em uma classe derivada, retorna uma matriz de todos os atributos personalizados aplicados a esse membro.When overridden in a derived class, returns an array of all custom attributes applied to this member.

(Herdado de MemberInfo)
GetCustomAttributes(Type, Boolean)

Retorna os atributos personalizados identificados pelo tipo determinado.Returns the custom attributes identified by the given type.

GetCustomAttributes(Type, Boolean)

Quando substituído em uma classe derivada, retorna uma matriz de atributos personalizados aplicados a esse membro e identificados por Type.When overridden in a derived class, returns an array of custom attributes applied to this member and identified by Type.

(Herdado de MemberInfo)
GetCustomAttributesData()

Retorna uma lista de objetos CustomAttributeData que representam dados sobre os atributos que foram aplicados ao membro de destino.Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member.

(Herdado de MemberInfo)
GetGenericArguments()

Retorna uma matriz de objetos GenericTypeParameterBuilder que representam os parâmetros de tipo do método, se for genérico.Returns an array of GenericTypeParameterBuilder objects that represent the type parameters of the method, if it is generic.

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.Returns an array of Type objects that represent the type arguments of a generic method or the type parameters of a generic method definition.

(Herdado de MethodInfo)
GetGenericMethodDefinition()

Retorna este método.Returns this method.

GetGenericMethodDefinition()

Retorna um objeto MethodInfo que representa uma definição de método genérico da qual o método atual pode ser criado.Returns a MethodInfo object that represents a generic method definition from which the current method can be constructed.

(Herdado de MethodInfo)
GetHashCode()

Obtém o código hash para este método.Gets the hash code for this method.

GetHashCode()

Retorna o código hash para a instância.Returns the hash code for this instance.

(Herdado de MethodInfo)
GetILGenerator()

Retorna um ILGenerator para esse método com um tamanho de fluxo MSIL (linguagem intermediária da Microsoft) padrão de 64 bytes.Returns an ILGenerator for this method with a default Microsoft intermediate language (MSIL) stream size of 64 bytes.

GetILGenerator(Int32)

Retorna um ILGenerator pra esse método com o tamanho de fluxo MSIL (linguagem intermediária da Microsoft) especificado.Returns an ILGenerator for this method with the specified Microsoft intermediate language (MSIL) stream size.

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.When overridden in a derived class, gets a MethodBody object that provides access to the MSIL stream, local variables, and exceptions for the current method.

(Herdado de MethodBase)
GetMethodImplementationFlags()

Retorna os sinalizadores de implementação para o método.Returns the implementation flags for the method.

GetMethodImplementationFlags()

Quando substituído em uma classe derivada, retorna os sinalizadores MethodImplAttributes.When overridden in a derived class, returns the MethodImplAttributes flags.

(Herdado de MethodBase)
GetModule()

Retorna uma referência para o módulo que contém este método.Returns a reference to the module that contains this method.

GetParameters()

Retorna os parâmetros deste método.Returns the parameters of this method.

GetToken()

Retorna o MethodToken que representa o token para este método.Returns the MethodToken that represents the token for this method.

GetType()

Descobre os atributos de um método e fornece acesso aos metadados de método.Discovers the attributes of a method and provides access to method metadata.

(Herdado de MethodInfo)
HasSameMetadataDefinitionAs(MemberInfo) (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.Dynamically invokes the method reflected by this instance on the given object, passing along the specified parameters, and under the constraints of the given binder.

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.When overridden in a derived class, invokes the reflected method or constructor with the given parameters.

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

Invoca o método ou construtor refletido por esta instância de MethodInfo.Invokes the method or constructor reflected by this MethodInfo instance.

(Herdado de MethodInfo)
IsDefined(Type, Boolean)

Verifica se o tipo de atributo personalizado especificado é definido.Checks if the specified custom attribute type is defined.

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.When overridden in a derived class, indicates whether one or more attributes of the specified type or of its derived types is applied to this member.

(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.Returns a generic method constructed from the current generic method definition using the specified generic type arguments.

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.Substitutes the elements of an array of types for the type parameters of the current generic method definition, and returns a MethodInfo object representing the resulting constructed method.

(Herdado de MethodInfo)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

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

Define um atributo personalizado usando um blob de atributo personalizado especificado.Sets a custom attribute using a specified custom attribute blob.

SetCustomAttribute(CustomAttributeBuilder)

Define um atributo personalizado usando um construtor de atributos personalizados.Sets a custom attribute using a custom attribute builder.

SetImplementationFlags(MethodImplAttributes)

Define os sinalizadores de implementação para este método.Sets the implementation flags for this method.

SetMarshal(UnmanagedMarshal)
Obsoleto.
Obsoleto.

Define informações de marshaling para o tipo retornado desse método.Sets marshaling information for the return type of this method.

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).Creates the body of the method by using a specified byte array of Microsoft intermediate language (MSIL) instructions.

SetParameters(Type[])

Define o número e tipos de parâmetros para um método.Sets the number and types of parameters for a method.

SetReturnType(Type)

Define o tipo retornado do método.Sets the return type of the method.

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.Sets the method signature, including the return type, the parameter types, and the required and optional custom modifiers of the return type and parameter types.

SetSymCustomAttribute(String, Byte[])

Define um atributo personalizado simbólico usando um blob.Set a symbolic custom attribute using a blob.

ToString()

Retorna esta instância MethodBuilder como uma cadeia de caracteres.Returns this MethodBuilder instance as a string.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

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.Maps a set of names to a corresponding set of dispatch identifiers.

(Herdado de MemberInfo)
_MemberInfo.GetType()

Obtém um objeto Type que representa a classe MemberInfo.Gets a Type object representing the MemberInfo class.

(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.Retrieves the type information for an object, which can then be used to get the type information for an 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).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.Maps a set of names to a corresponding set of dispatch identifiers.

(Herdado de MethodBase)
_MethodBase.GetType()

Para obter uma descrição desse membro, confira GetType().For a description of this member, see 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.Retrieves the type information for an object, which can then be used to get the type information for an 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).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Herdado de MethodBase)
_MethodBase.IsAbstract

Para obter uma descrição desse membro, confira IsAbstract.For a description of this member, see IsAbstract.

(Herdado de MethodBase)
_MethodBase.IsAssembly

Para obter uma descrição desse membro, confira IsAssembly.For a description of this member, see IsAssembly.

(Herdado de MethodBase)
_MethodBase.IsConstructor

Para obter uma descrição desse membro, confira IsConstructor.For a description of this member, see IsConstructor.

(Herdado de MethodBase)
_MethodBase.IsFamily

Para obter uma descrição desse membro, confira IsFamily.For a description of this member, see IsFamily.

(Herdado de MethodBase)
_MethodBase.IsFamilyAndAssembly

Para obter uma descrição desse membro, confira IsFamilyAndAssembly.For a description of this member, see IsFamilyAndAssembly.

(Herdado de MethodBase)
_MethodBase.IsFamilyOrAssembly

Para obter uma descrição desse membro, confira IsFamilyOrAssembly.For a description of this member, see IsFamilyOrAssembly.

(Herdado de MethodBase)
_MethodBase.IsFinal

Para obter uma descrição desse membro, confira IsFinal.For a description of this member, see IsFinal.

(Herdado de MethodBase)
_MethodBase.IsHideBySig

Para obter uma descrição desse membro, confira IsHideBySig.For a description of this member, see IsHideBySig.

(Herdado de MethodBase)
_MethodBase.IsPrivate

Para obter uma descrição desse membro, confira IsPrivate.For a description of this member, see IsPrivate.

(Herdado de MethodBase)
_MethodBase.IsPublic

Para obter uma descrição desse membro, confira IsPublic.For a description of this member, see IsPublic.

(Herdado de MethodBase)
_MethodBase.IsSpecialName

Para obter uma descrição desse membro, confira IsSpecialName.For a description of this member, see IsSpecialName.

(Herdado de MethodBase)
_MethodBase.IsStatic

Para obter uma descrição desse membro, confira IsStatic.For a description of this member, see IsStatic.

(Herdado de MethodBase)
_MethodBase.IsVirtual

Para obter uma descrição desse membro, confira IsVirtual.For a description of this member, see 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.Maps a set of names to a corresponding set of dispatch identifiers.

_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.Retrieves the type information for an object, which can then be used to get the type information for an interface.

_MethodBuilder.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

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

Fornece acesso a propriedades e métodos expostos por um objeto.Provides access to properties and methods exposed by an object.

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.Maps a set of names to a corresponding set of dispatch identifiers.

(Herdado de MethodInfo)
_MethodInfo.GetType()

Dá acesso ao GetType() método do COM.Provides access to the GetType() method from 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.Retrieves the type information for an object, which can be used to get the type information for an 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).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(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.Returns an array of all of the custom attributes defined on this member, excluding named attributes, or an empty array if there are no custom attributes.

(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.Returns an array of custom attributes defined on this member, identified by type, or an empty array if there are no custom attributes of that type.

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

Indica se uma ou mais instâncias de attributeType estão definidas nesse membro.Indicates whether one or more instance of attributeType is defined on this member.

(Herdado de MemberInfo)

Métodos de Extensão

GetCustomAttribute(MemberInfo, Type)

Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute(MemberInfo, Type, Boolean)

Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro.Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttribute<T>(MemberInfo)

Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute<T>(MemberInfo, Boolean)

Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro.Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo)

Recupera uma coleção de atributos personalizados que são aplicados a um membro especificado.Retrieves a collection of custom attributes that are applied to a specified member.

GetCustomAttributes(MemberInfo, Boolean)

Recupera uma coleção de atributos personalizados aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro.Retrieves a collection of custom attributes that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo, Type)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

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.Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes<T>(MemberInfo)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

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.Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

IsDefined(MemberInfo, Type)

Indica se os atributos personalizados de um tipo especificados são aplicados a um membro especificado.Indicates whether custom attributes of a specified type are applied to a specified member.

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.Indicates whether custom attributes of a specified type are applied to a specified member, and, optionally, applied to its ancestors.

GetMetadataToken(MemberInfo)

Obtém um token de metadados para o membro fornecido, se disponível.Gets a metadata token for the given member, if available.

HasMetadataToken(MemberInfo)

Retorna um valor que indica se um token de metadados está disponível para o membro especificado.Returns a value that indicates whether a metadata token is available for the specified member.

GetBaseDefinition(MethodInfo)
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.Retrieves an object that represents the specified method on the direct or indirect base class where the method was first declared.

Aplica-se a