Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Método Attribute.GetCustomAttribute (MemberInfo, Type)

Recupera um atributo personalizado aplicado a um membro de um tipo. Parâmetros especificam o membro e o tipo do atributo personalizado para pesquisar.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)
public static Attribute GetCustomAttribute(
	MemberInfo element,
	Type attributeType
)

Parâmetros

element
Tipo: System.Reflection.MemberInfo
Um objeto derivado de MemberInfo classe que descreve um membro do construtor, eventos, campo, método ou propriedade de uma classe.
attributeType
Tipo: System.Type
O tipo ou um tipo base, do atributo personalizado para pesquisar.

Valor de retorno

Tipo: System.Attribute
Uma referência para o único atributo personalizado do tipo attributeType que é aplicado a element, ou null se houver um atributo não existe.
ExceçãoCondição
ArgumentNullException

elementor attributeType is null.

ArgumentException

attributeTypenão é derivado de Attribute.

NotSupportedException

elementnão é um construtor, método, propriedade, evento, tipo ou campo.

AmbiguousMatchException

Mais de um dos atributos solicitados foi encontrado.

TypeLoadException

Não é possível carregar um tipo de atributo personalizado.

Uma correspondência é determinada da mesma maneira descrita na seção retornar o valor de Type.IsAssignableFrom.

ObservaçãoObservação

Começando com o.NET Framework versão 2.0, esse método retorna os atributos de segurança em construtores, métodos e tipos se os atributos são armazenados no novo formato de metadados. Módulos (assemblies) compilados com a versão 2.0 ou posterior usa o novo formato. Assemblies dinâmicos e assemblies compilados com versões anteriores do.NET Framework usar o antigo formato XML. Consulte Emitindo atributos de segurança declarativos.

O exemplo de código a seguir ilustra o uso da GetCustomAttribute levando método um MemberInfo como um parâmetro.


using System;
using System.Reflection;

namespace IsDef4CS 
{
    public class TestClass 
    {
        // Assign the Obsolete attribute to a method.
        [Obsolete("This method is obsolete. Use Method2 instead.")]
        public void Method1()
        {}
        public void Method2()
        {}
    }

    public class DemoClass 
    {
        static void Main(string[] args) 
        {
            // Get the class type to access its metadata.
            Type clsType = typeof(TestClass);
            // Get the MethodInfo object for Method1.
            MethodInfo mInfo = clsType.GetMethod("Method1");
            // See if the Obsolete attribute is defined for this method.
            bool isDef = Attribute.IsDefined(mInfo, typeof(ObsoleteAttribute));
            // Display the result.
            Console.WriteLine("The Obsolete Attribute {0} defined for {1} of class {2}.",
                isDef ? "is" : "is not", mInfo.Name, clsType.Name);
            // If it's defined, display the attribute's message.
            if (isDef) 
            {
                ObsoleteAttribute obsAttr = 
                                 (ObsoleteAttribute)Attribute.GetCustomAttribute( 
                                                    mInfo, typeof(ObsoleteAttribute));
                if (obsAttr != null)
                    Console.WriteLine("The message is: \"{0}\".",
                        obsAttr.Message);
                else
                    Console.WriteLine("The message could not be retrieved.");
            }
        }
    }
}

/*
 * Output:
 * The Obsolete Attribute is defined for Method1 of class TestClass.
 * The message is: "This method is obsolete. Use Method2 instead.".
 */


.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Biblioteca de Classes Portátil

Com suporte em: Biblioteca de Classes Portátil

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.