Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método Attribute.IsDefined (MemberInfo, Type)

 

Determina se todos os atributos personalizados são aplicados 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 bool IsDefined(
	MemberInfo element,
	Type attributeType
)

Parâmetros

element
Type: System.Reflection.MemberInfo

Um objeto derivado de MemberInfo classe que descreve um construtor, evento, campo, método, tipo ou propriedade de membro de uma classe.

attributeType
Type: System.Type

O tipo ou um tipo base, do atributo personalizado para pesquisar.

Valor Retornado

Type: System.Boolean

true Se um atributo personalizado do tipo attributeType é aplicado a element; caso contrário, false.

Exception Condition
ArgumentNullException

element ou attributeType é null.

ArgumentException

attributeType não é derivado de Attribute.

NotSupportedException

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

Os ancestrais do element são pesquisados para atributos personalizados.

System_CAPS_noteObservação

Iniciando com o .NET Framework versão 2.0, esse método retorna true se um tipo, um método ou um construtor tem atributos de segurança armazenados no novo formato de metadados. Assemblies compilados com a versão 2.0 ou posterior usam o novo formato. Assemblies dinâmicos e assemblies compilados com versões anteriores do .NET Framework usam o antigo formato XML. Consulte emitindo atributos de segurança declarativos.

O exemplo de código a seguir ilustra o uso de IsDefined, aceitando uma 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
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Retornar ao início
Mostrar: