DynamicMethod Classe

Definição

Define e representa um método dinâmico que pode ser compilado, executado e descartado. Métodos descartados estão disponíveis para recolha de lixo.

public ref class DynamicMethod sealed : System::Reflection::MethodInfo
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DynamicMethod : System.Reflection.MethodInfo
public sealed class DynamicMethod : System.Reflection.MethodInfo
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicMethod = class
    inherit MethodInfo
type DynamicMethod = class
    inherit MethodInfo
Public NotInheritable Class DynamicMethod
Inherits MethodInfo
Herança
Atributos

Exemplos

O exemplo de código seguinte cria um método dinâmico que assume dois parâmetros. O exemplo emite um corpo de função simples que imprime o primeiro parâmetro na consola, e o exemplo usa o segundo parâmetro como valor de retorno do método. O exemplo completa o método criando um delegado, invoca o delegado com diferentes parâmetros e, finalmente, invoca o método dinâmico usando o Invoke método.

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

public class Test
{
    // Declare a delegate type that can be used to execute the completed
    // dynamic method.
    private delegate int HelloDelegate(string msg, int ret);

    public static void Main()
    {
        // Create an array that specifies the types of the parameters
        // of the dynamic method. This dynamic method has a String
        // parameter and an Integer parameter.
        Type[] helloArgs = {typeof(string), typeof(int)};

        // Create a dynamic method with the name "Hello", a return type
        // of Integer, and two parameters whose types are specified by
        // the array helloArgs. Create the method in the module that
        // defines the String class.
        DynamicMethod hello = new DynamicMethod("Hello",
            typeof(int),
            helloArgs,
            typeof(string).Module);

        // Create an array that specifies the parameter types of the
        // overload of Console.WriteLine to be used in Hello.
        Type[] writeStringArgs = {typeof(string)};
        // Get the overload of Console.WriteLine that has one
        // String parameter.
        MethodInfo writeString = typeof(Console).GetMethod("WriteLine",
            writeStringArgs);

        // Get an ILGenerator and emit a body for the dynamic method,
        // using a stream size larger than the IL that will be
        // emitted.
        ILGenerator il = hello.GetILGenerator(256);
        // Load the first argument, which is a string, onto the stack.
        il.Emit(OpCodes.Ldarg_0);
        // Call the overload of Console.WriteLine that prints a string.
        il.EmitCall(OpCodes.Call, writeString, null);
        // The Hello method returns the value of the second argument;
        // to do this, load the onto the stack and return.
        il.Emit(OpCodes.Ldarg_1);
        il.Emit(OpCodes.Ret);

        // Add parameter information to the dynamic method. (This is not
        // necessary, but can be useful for debugging.) For each parameter,
        // identified by position, supply the parameter attributes and a
        // parameter name.
        hello.DefineParameter(1, ParameterAttributes.In, "message");
        hello.DefineParameter(2, ParameterAttributes.In, "valueToReturn");

        // Create a delegate that represents the dynamic method. This
        // action completes the method. Any further attempts to
        // change the method are ignored.
        HelloDelegate hi =
            (HelloDelegate) hello.CreateDelegate(typeof(HelloDelegate));

        // Use the delegate to execute the dynamic method.
        Console.WriteLine("\r\nUse the delegate to execute the dynamic method:");
        int retval = hi("\r\nHello, World!", 42);
        Console.WriteLine("Invoking delegate hi(\"Hello, World!\", 42) returned: " + retval);

        // Execute it again, with different arguments.
        retval = hi("\r\nHi, Mom!", 5280);
        Console.WriteLine("Invoking delegate hi(\"Hi, Mom!\", 5280) returned: " + retval);

        Console.WriteLine("\r\nUse the Invoke method to execute the dynamic method:");
        // Create an array of arguments to use with the Invoke method.
        object[] invokeArgs = {"\r\nHello, World!", 42};
        // Invoke the dynamic method using the arguments. This is much
        // slower than using the delegate, because you must create an
        // array to contain the arguments, and value-type arguments
        // must be boxed.
        object objRet = hello.Invoke(null, BindingFlags.ExactBinding, null, invokeArgs, new CultureInfo("en-us"));
        Console.WriteLine("hello.Invoke returned: " + objRet);

        Console.WriteLine("\r\n ----- Display information about the dynamic method -----");
        // Display MethodAttributes for the dynamic method, set when
        // the dynamic method was created.
        Console.WriteLine("\r\nMethod Attributes: {0}", hello.Attributes);

        // Display the calling convention of the dynamic method, set when the
        // dynamic method was created.
        Console.WriteLine("\r\nCalling convention: {0}", hello.CallingConvention);

        // Display the declaring type, which is always null for dynamic
        // methods.
        if (hello.DeclaringType == null)
        {
            Console.WriteLine("\r\nDeclaringType is always null for dynamic methods.");
        }
        else
        {
            Console.WriteLine("DeclaringType: {0}", hello.DeclaringType);
        }

        // Display the default value for InitLocals.
        if (hello.InitLocals)
        {
            Console.Write("\r\nThis method contains verifiable code.");
        }
        else
        {
            Console.Write("\r\nThis method contains unverifiable code.");
        }
        Console.WriteLine(" (InitLocals = {0})", hello.InitLocals);

        // Display the module specified when the dynamic method was created.
        Console.WriteLine("\r\nModule: {0}", hello.Module);

        // Display the name specified when the dynamic method was created.
        // Note that the name can be blank.
        Console.WriteLine("\r\nName: {0}", hello.Name);

        // For dynamic methods, the reflected type is always null.
        if (hello.ReflectedType == null)
        {
            Console.WriteLine("\r\nReflectedType is null.");
        }
        else
        {
            Console.WriteLine("\r\nReflectedType: {0}", hello.ReflectedType);
        }

        if (hello.ReturnParameter == null)
        {
            Console.WriteLine("\r\nMethod has no return parameter.");
        }
        else
        {
            Console.WriteLine("\r\nReturn parameter: {0}", hello.ReturnParameter);
        }

        // If the method has no return type, ReturnType is System.Void.
        Console.WriteLine("\r\nReturn type: {0}", hello.ReturnType);

        // ReturnTypeCustomAttributes returns an ICustomeAttributeProvider
        // that can be used to enumerate the custom attributes of the
        // return value. At present, there is no way to set such custom
        // attributes, so the list is empty.
        if (hello.ReturnType == typeof(void))
        {
            Console.WriteLine("The method has no return type.");
        }
        else
        {
            ICustomAttributeProvider caProvider = hello.ReturnTypeCustomAttributes;
            object[] returnAttributes = caProvider.GetCustomAttributes(true);
            if (returnAttributes.Length == 0)
            {
                Console.WriteLine("\r\nThe return type has no custom attributes.");
            }
            else
            {
                Console.WriteLine("\r\nThe return type has the following custom attributes:");
                foreach( object attr in returnAttributes )
                {
                    Console.WriteLine("\t{0}", attr.ToString());
                }
            }
        }

        Console.WriteLine("\r\nToString: {0}", hello.ToString());

        // Display parameter information.
        ParameterInfo[] parameters = hello.GetParameters();
        Console.WriteLine("\r\nParameters: name, type, ParameterAttributes");
        foreach( ParameterInfo p in parameters )
        {
            Console.WriteLine("\t{0}, {1}, {2}",
                p.Name, p.ParameterType, p.Attributes);
        }
    }
}

/* This code example produces the following output:

Use the delegate to execute the dynamic method:

Hello, World!
Invoking delegate hi("Hello, World!", 42) returned: 42

Hi, Mom!
Invoking delegate hi("Hi, Mom!", 5280) returned: 5280

Use the Invoke method to execute the dynamic method:

Hello, World!
hello.Invoke returned: 42

 ----- Display information about the dynamic method -----

Method Attributes: PrivateScope, Public, Static

Calling convention: Standard

DeclaringType is always null for dynamic methods.

This method contains verifiable code. (InitLocals = True)

Module: CommonLanguageRuntimeLibrary

Name: Hello

ReflectedType is null.

Method has no return parameter.

Return type: System.Int32

The return type has no custom attributes.

ToString: Int32 Hello(System.String, Int32)

Parameters: name, type, ParameterAttributes
        message, System.String, In
        valueToReturn, System.Int32, In
 */
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Globalization

Public Class Test
    ' Declare a delegate type that can be used to execute the completed
    ' dynamic method. 
    Private Delegate Function HelloDelegate(ByVal msg As String, _
        ByVal ret As Integer) As Integer

    Public Shared Sub Main()
        ' Create an array that specifies the types of the parameters
        ' of the dynamic method. This dynamic method has a String
        ' parameter and an Integer parameter.
        Dim helloArgs() As Type = {GetType(String), GetType(Integer)}

        ' Create a dynamic method with the name "Hello", a return type
        ' of Integer, and two parameters whose types are specified by
        ' the array helloArgs. Create the method in the module that
        ' defines the String class.
        Dim hello As New DynamicMethod("Hello", _
            GetType(Integer), _
            helloArgs, _
            GetType(String).Module)

        ' Create an array that specifies the parameter types of the
        ' overload of Console.WriteLine to be used in Hello.
        Dim writeStringArgs() As Type = {GetType(String)}
        ' Get the overload of Console.WriteLine that has one
        ' String parameter.
        Dim writeString As MethodInfo = GetType(Console). _
            GetMethod("WriteLine", writeStringArgs) 

        ' Get an ILGenerator and emit a body for the dynamic method,
        ' using a stream size larger than the IL that will be
        ' emitted.
        Dim il As ILGenerator = hello.GetILGenerator(256)
        ' Load the first argument, which is a string, onto the stack.
        il.Emit(OpCodes.Ldarg_0)
        ' Call the overload of Console.WriteLine that prints a string.
        il.EmitCall(OpCodes.Call, writeString, Nothing)
        ' The Hello method returns the value of the second argument;
        ' to do this, load the onto the stack and return.
        il.Emit(OpCodes.Ldarg_1)
        il.Emit(OpCodes.Ret)

        ' Add parameter information to the dynamic method. (This is not
        ' necessary, but can be useful for debugging.) For each parameter,
        ' identified by position, supply the parameter attributes and a 
        ' parameter name.
        hello.DefineParameter(1, ParameterAttributes.In, "message")
        hello.DefineParameter(2, ParameterAttributes.In, "valueToReturn")

        ' Create a delegate that represents the dynamic method. This
        ' action completes the method. Any further attempts to
        ' change the method are ignored.
    Dim hi As HelloDelegate = _
            CType(hello.CreateDelegate(GetType(HelloDelegate)), HelloDelegate)

        ' Use the delegate to execute the dynamic method.
        Console.WriteLine(vbCrLf & "Use the delegate to execute the dynamic method:")
        Dim retval As Integer = hi(vbCrLf & "Hello, World!", 42)
        Console.WriteLine("Invoking delegate hi(""Hello, World!"", 42) returned: " _
            & retval & ".")

        ' Execute it again, with different arguments.
        retval = hi(vbCrLf & "Hi, Mom!", 5280)
        Console.WriteLine("Invoking delegate hi(""Hi, Mom!"", 5280) returned: " _
            & retval & ".")

        Console.WriteLine(vbCrLf & "Use the Invoke method to execute the dynamic method:")
        ' Create an array of arguments to use with the Invoke method.
        Dim invokeArgs() As Object = {vbCrLf & "Hello, World!", 42}
        ' Invoke the dynamic method using the arguments. This is much
        ' slower than using the delegate, because you must create an
        ' array to contain the arguments, and value-type arguments
        ' must be boxed.
        Dim objRet As Object = hello.Invoke(Nothing, _
            BindingFlags.ExactBinding, Nothing, invokeArgs, _
            New CultureInfo("en-us"))
        Console.WriteLine("hello.Invoke returned: {0}", objRet)

        Console.WriteLine(vbCrLf & _
            " ----- Display information about the dynamic method -----")
        ' Display MethodAttributes for the dynamic method, set when 
        ' the dynamic method was created.
        Console.WriteLine(vbCrLf & "Method Attributes: {0}", _
            hello.Attributes)

        ' Display the calling convention of the dynamic method, set when the 
        ' dynamic method was created.
        Console.WriteLine(vbCrLf & "Calling convention: {0}", _ 
            hello.CallingConvention)

        ' Display the declaring type, which is always Nothing for dynamic
        ' methods.
        If hello.DeclaringType Is Nothing Then
            Console.WriteLine(vbCrLf & "DeclaringType is always Nothing for dynamic methods.")
        Else
            Console.WriteLine("DeclaringType: {0}", hello.DeclaringType)
        End If

        ' Display the default value for InitLocals.
        If hello.InitLocals Then
            Console.Write(vbCrLf & "This method contains verifiable code.")
        Else
            Console.Write(vbCrLf & "This method contains unverifiable code.")
        End If
        Console.WriteLine(" (InitLocals = {0})", hello.InitLocals)

        ' Display the module specified when the dynamic method was created.
        Console.WriteLine(vbCrLf & "Module: {0}", hello.Module)

        ' Display the name specified when the dynamic method was created.
        ' Note that the name can be blank.
        Console.WriteLine(vbCrLf & "Name: {0}", hello.Name)

        ' For dynamic methods, the reflected type is always Nothing.
        If hello.ReflectedType Is Nothing Then
            Console.WriteLine(vbCrLf & "ReflectedType is Nothing.")
        Else
            Console.WriteLine(vbCrLf & "ReflectedType: {0}", _
                hello.ReflectedType)
        End If

        If hello.ReturnParameter Is Nothing Then
            Console.WriteLine(vbCrLf & "Method has no return parameter.")
        Else
            Console.WriteLine(vbCrLf & "Return parameter: {0}", _
                hello.ReturnParameter)
        End If

        ' If the method has no return type, ReturnType is System.Void.
        Console.WriteLine(vbCrLf & "Return type: {0}", hello.ReturnType)           

        ' ReturnTypeCustomAttributes returns an ICustomeAttributeProvider
        ' that can be used to enumerate the custom attributes of the
        ' return value. At present, there is no way to set such custom
        ' attributes, so the list is empty.
        If hello.ReturnType Is GetType(System.Void) Then
            Console.WriteLine("The method has no return type.")
        Else
            Dim caProvider As ICustomAttributeProvider = _
                hello.ReturnTypeCustomAttributes
            Dim returnAttributes() As Object = _
                caProvider.GetCustomAttributes(True)
            If returnAttributes.Length = 0 Then
                Console.WriteLine(vbCrLf _
                    & "The return type has no custom attributes.")
            Else
                Console.WriteLine(vbCrLf _
                    & "The return type has the following custom attributes:")
                For Each attr As Object In returnAttributes
                    Console.WriteLine(vbTab & attr.ToString())
                Next attr
            End If
        End If

        Console.WriteLine(vbCrLf & "ToString: " & hello.ToString())

        ' Display parameter information.
        Dim parameters() As ParameterInfo = hello.GetParameters()
        Console.WriteLine(vbCrLf & "Parameters: name, type, ParameterAttributes")
        For Each p As ParameterInfo In parameters
            Console.WriteLine(vbTab & "{0}, {1}, {2}", _ 
                p.Name, p.ParameterType, p.Attributes)
        Next p
    End Sub
End Class

' This code example produces the following output:
'
'Use the delegate to execute the dynamic method:
'
'Hello, World!
'Invoking delegate hi("Hello, World!", 42) returned: 42.
'
'Hi, Mom!
'Invoking delegate hi("Hi, Mom!", 5280) returned: 5280.
'
'Use the Invoke method to execute the dynamic method:
'
'Hello, World!
'hello.Invoke returned: 42
'
' ----- Display information about the dynamic method -----
'
'Method Attributes: PrivateScope, Public, Static
'
'Calling convention: Standard
'
'DeclaringType is always Nothing for dynamic methods.
'
'This method contains verifiable code. (InitLocals = True)
'
'Module: CommonLanguageRuntimeLibrary
'
'Name: Hello
'
'ReflectedType is Nothing.
'
'Method has no return parameter.
'
'Return type: System.Int32
'
'The return type has no custom attributes.
'
'ToString: Int32 Hello(System.String, Int32)
'
'Parameters: name, type, ParameterAttributes
'        message, System.String, In
'        valueToReturn, System.Int32, In

Observações

Para mais informações sobre esta API, consulte Observações Suplementares da API para o DynamicMethod.

Construtores

Name Description
DynamicMethod(String, MethodAttributes, CallingConventions, Type, Type[], Module, Boolean)

Cria um método dinâmico que é global para um módulo, especificando o nome do método, atributos, convenção de chamada, tipo de retorno, tipos de parâmetros, módulo e se as verificações de visibilidade just-in-time (JIT) devem ser ignoradas para tipos e membros acedidos pela linguagem intermédia Microsoft (MSIL) do método dinâmico.

DynamicMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type, Boolean)

Cria um método dinâmico, especificando o nome do método, atributos, convenção de chamada, tipo de retorno, tipos de parâmetro, o tipo com que o método dinâmico está logicamente associado e se as verificações de visibilidade just-in-time (JIT) devem ser ignoradas para tipos e membros acedidos pela linguagem intermédia Microsoft (MSIL) do método dinâmico.

DynamicMethod(String, Type, Type[], Boolean)

Inicializa um método dinâmico alojado anonimamente, especificando o nome do método, tipo de retorno, tipos de parâmetros e se as verificações de visibilidade just-in-time (JIT) devem ser ignoradas para tipos e membros acedidos pela linguagem intermédia Microsoft (MSIL) do método dinâmico.

DynamicMethod(String, Type, Type[], Module, Boolean)

Cria um método dinâmico que é global para um módulo, especificando o nome do método, tipo de retorno, tipos de parâmetro, módulo e se as verificações de visibilidade just-in-time (JIT) devem ser ignoradas para tipos e membros acedidos pela linguagem intermédia Microsoft (MSIL) do método dinâmico.

DynamicMethod(String, Type, Type[], Module)

Cria um método dinâmico que é global para um módulo, especificando o nome do método, tipo de retorno, tipos de parâmetros e módulo.

DynamicMethod(String, Type, Type[], Type, Boolean)

Cria um método dinâmico, especificando o nome do método, tipo de retorno, tipos de parâmetro, o tipo com que o método dinâmico está logicamente associado e se as verificações de visibilidade just-in-time (JIT) devem ser ignoradas para tipos e membros acedidos pela linguagem intermédia Microsoft (MSIL) do método dinâmico.

DynamicMethod(String, Type, Type[], Type)

Cria um método dinâmico, especificando o nome do método, tipo de retorno, tipos de parâmetros e o tipo com que o método dinâmico está logicamente associado.

DynamicMethod(String, Type, Type[])

Inicializa um método dinâmico hospedado anonimamente, especificando o nome do método, o tipo de retorno e os tipos de parâmetros.

Propriedades

Name Description
Attributes

Obtém os atributos especificados quando o método dinâmico foi criado.

CallingConvention

Obtém a convenção de chamada especificada quando o método dinâmico foi criado.

ContainsGenericParameters

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

(Herdado de MethodInfo)
CustomAttributes

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

(Herdado de MemberInfo)
DeclaringType

Obtém o tipo que declara o método, que é sempre null para métodos dinâmicos.

InitLocals

Recebe ou define um valor que indica se as variáveis locais no método são zero-inicializadas.

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; isto é, o método ou construtor é visível no máximo para outros tipos no mesmo conjunto, e não é visível para tipos derivados fora do conjunto.

(Herdado de MethodBase)
IsConstructedGenericMethod

Define e representa um método dinâmico que pode ser compilado, executado e descartado. Métodos descartados estão disponíveis para recolha de lixo.

(Herdado de MethodBase)
IsConstructor

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

(Herdado de MethodBase)
IsFamily

Recebe um valor que indica se a visibilidade deste método ou construtor é descrita por Family; isto é, o método ou construtor é visível apenas dentro da sua classe e das classes derivadas.

(Herdado de MethodBase)
IsFamilyAndAssembly

Obtém um valor que indica se a visibilidade deste método ou construtor é descrita por FamANDAssem; isto é, o método ou construtor pode ser chamado por classes derivadas, mas apenas se estiverem na mesma assembleia.

(Herdado de MethodBase)
IsFamilyOrAssembly

Obtém um valor que indica se a visibilidade potencial deste método ou construtor é descrita por FamORAssem; isto é, o método ou construtor pode ser chamado por classes derivadas onde quer que estejam, e por classes na mesma assembleia.

(Herdado de MethodBase)
IsFinal

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

(Herdado de MethodBase)
IsGenericMethod

Recebe 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 a corrente MethodInfo 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

Recebe um valor que indica se este membro é privado.

(Herdado de MethodBase)
IsPublic

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

(Herdado de MethodBase)
IsSecurityCritical

Obtém um valor que indica se o método dinâmico atual é crítico para a segurança ou para segurança-seguro-crítico, podendo assim realizar operações críticas.

IsSecurityCritical

Obtém um valor que indica se o método ou construtor atual é crítico para segurança ou para segurança ao nível de confiança atual, podendo assim realizar operações críticas.

(Herdado de MethodBase)
IsSecuritySafeCritical

Obtém um valor que indica se o método dinâmico atual é crítico de segurança ao nível de confiança atual; ou seja, se pode realizar operações críticas e se pode ser acedido por código transparente.

IsSecuritySafeCritical

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

(Herdado de MethodBase)
IsSecurityTransparent

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

IsSecurityTransparent

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

(Herdado de MethodBase)
IsSpecialName

Recebe um valor que indica se este 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 MemberTypes valor que indica que este membro é um método.

(Herdado de MethodInfo)
MetadataToken

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

(Herdado de MemberInfo)
MethodHandle

Não é suportado para métodos dinâmicos.

MethodImplementationFlags

Recebe as MethodImplAttributes flags que especificam os atributos de uma implementação de método.

(Herdado de MethodBase)
Module

Obtém o módulo com o qual o método dinâmico está logicamente associado.

Module

Obtém o módulo em que o tipo que declara o elemento representado pela corrente MemberInfo está definido.

(Herdado de MemberInfo)
Name

Recebe o nome do método dinâmico.

ReflectedType

Obtém a classe que foi usada em reflexão para obter o método.

ReturnParameter

Obtém o parâmetro de retorno do método dinâmico.

ReturnType

Obtém o tipo de valor de retorno para o método dinâmico.

ReturnTypeCustomAttributes

Obtém os atributos personalizados do tipo de retorno para o método dinâmico.

Métodos

Name Description
CreateDelegate(Type, Object)

Completa o método dinâmico e cria um delegado que pode ser usado para o executar, especificando o tipo de delegado e um objeto a que o delegado está vinculado.

CreateDelegate(Type)

Completa o método dinâmico e cria um delegado que pode ser usado para o executar.

DefineParameter(Int32, ParameterAttributes, String)

Define um parâmetro do método dinâmico.

Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de MethodInfo)
GetBaseDefinition()

Devolve a implementação base do método.

GetCustomAttributes(Boolean)

Devolve todos os atributos personalizados definidos para o método.

GetCustomAttributes(Type, Boolean)

Devolve os atributos personalizados do tipo especificado que foram aplicados ao método.

GetCustomAttributesData()

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

(Herdado de MemberInfo)
GetDynamicILInfo()

Devolve um objeto DynamicILInfo que pode ser usado para gerar um corpo de método a partir de tokens de metadados, escopos e fluxos de linguagem intermédia Microsoft (MSIL).

GetGenericArguments()

Devolve um array de Type objetos 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()

Devolve um MethodInfo objeto que representa uma definição genérica de método a partir da qual o método atual pode ser construído.

(Herdado de MethodInfo)
GetHashCode()

Devolve o código de hash para esta instância.

(Herdado de MethodInfo)
GetILGenerator()

Devolve um gerador de linguagem intermédia Microsoft (MSIL) para o método com um tamanho padrão de fluxo MSIL de 64 bytes.

GetILGenerator(Int32)

Devolve um gerador de linguagem intermédia Microsoft (MSIL) para o método com o tamanho especificado do fluxo MSIL.

GetMethodBody()

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

(Herdado de MethodBase)
GetMethodImplementationFlags()

Devolve as flags de implementação do método.

GetParameters()

Devolve os parâmetros do método dinâmico.

HasSameMetadataDefinitionAs(MemberInfo)

Define e representa um método dinâmico que pode ser compilado, executado e descartado. Métodos descartados estão disponíveis para recolha de lixo.

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

Invoca o método dinâmico usando os parâmetros especificados, sob as restrições do ligador especificado, com a informação de cultura especificada.

IsDefined(Type, Boolean)

Indica se o tipo de atributo personalizado especificado está definido.

MakeGenericMethod(Type[])

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

(Herdado de MethodInfo)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve a assinatura do método, representada como uma cadeia.

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

(Herdado de MemberInfo)
_MemberInfo.GetType()

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

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

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

(Herdado de MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

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

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

Proporciona 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 despacho.

(Herdado de MethodBase)
_MethodBase.GetType()

Para uma descrição deste elemento, veja GetType().

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

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

(Herdado de MethodBase)
_MethodBase.GetTypeInfoCount(UInt32)

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

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

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

(Herdado de MethodBase)
_MethodBase.IsAbstract

Para uma descrição deste elemento, veja IsAbstract.

(Herdado de MethodBase)
_MethodBase.IsAssembly

Para uma descrição deste elemento, veja IsAssembly.

(Herdado de MethodBase)
_MethodBase.IsConstructor

Para uma descrição deste elemento, veja IsConstructor.

(Herdado de MethodBase)
_MethodBase.IsFamily

Para uma descrição deste elemento, veja IsFamily.

(Herdado de MethodBase)
_MethodBase.IsFamilyAndAssembly

Para uma descrição deste elemento, veja IsFamilyAndAssembly.

(Herdado de MethodBase)
_MethodBase.IsFamilyOrAssembly

Para uma descrição deste elemento, veja IsFamilyOrAssembly.

(Herdado de MethodBase)
_MethodBase.IsFinal

Para uma descrição deste elemento, veja IsFinal.

(Herdado de MethodBase)
_MethodBase.IsHideBySig

Para uma descrição deste elemento, veja IsHideBySig.

(Herdado de MethodBase)
_MethodBase.IsPrivate

Para uma descrição deste elemento, veja IsPrivate.

(Herdado de MethodBase)
_MethodBase.IsPublic

Para uma descrição deste elemento, veja IsPublic.

(Herdado de MethodBase)
_MethodBase.IsSpecialName

Para uma descrição deste elemento, veja IsSpecialName.

(Herdado de MethodBase)
_MethodBase.IsStatic

Para uma descrição deste elemento, veja IsStatic.

(Herdado de MethodBase)
_MethodBase.IsVirtual

Para uma descrição deste elemento, veja IsVirtual.

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

(Herdado de MethodInfo)
_MethodInfo.GetType()

Fornece acesso ao GetType() método a partir do COM.

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

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de MethodInfo)
_MethodInfo.GetTypeInfoCount(UInt32)

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

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

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

(Herdado de MethodInfo)

Métodos da Extensão

Name Description
GetCustomAttribute(MemberInfo, Type, Boolean)

Recupera um atributo personalizado de um tipo especificado que é aplicado a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttribute(MemberInfo, Type)

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

GetCustomAttribute<T>(MemberInfo, Boolean)

Recupera um atributo personalizado de um tipo especificado que é aplicado a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttribute<T>(MemberInfo)

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

GetCustomAttributes(MemberInfo, Boolean)

Recupera uma coleção de atributos personalizados que são aplicados a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttributes(MemberInfo, Type, Boolean)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado e, opcionalmente, inspeciona os antepassados 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)

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

GetCustomAttributes<T>(MemberInfo, Boolean)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttributes<T>(MemberInfo)

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

GetRuntimeBaseDefinition(MethodInfo)

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

IsDefined(MemberInfo, Type, Boolean)

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

IsDefined(MemberInfo, Type)

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

Aplica-se a

Ver também