Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Attribute.IsDefined (MemberInfo, Type)

 

Publicado: octubre de 2016

Determina si los atributos personalizados se aplican a un miembro de un tipo. Los parámetros especifican el miembro y el tipo del atributo personalizado para buscar.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public static bool IsDefined(
	MemberInfo element,
	Type attributeType
)

Parámetros

element
Type: System.Reflection.MemberInfo

Un objeto derivado de la MemberInfo clase que describe un constructor, evento, campo, método, tipo o propiedad miembro de una clase.

attributeType
Type: System.Type

El tipo o un tipo base, del atributo personalizado para buscar.

Valor devuelto

Type: System.Boolean

true Si un atributo personalizado de tipo attributeType se aplica a element; en caso contrario, false.

Exception Condition
ArgumentNullException

El valor de element o attributeType es null.

ArgumentException

attributeType no se derive de Attribute.

NotSupportedException

element no es un constructor, método, propiedad, evento, tipo o campo.

Los antecesores de element se buscan los atributos personalizados.

System_CAPS_noteNota

A partir de la versión 2.0 de .NET Framework, este método devuelve true Si un tipo, método o constructor tiene atributos de seguridad almacenados en el nuevo formato de metadatos. Los ensamblados compilados con la versión 2.0 o posterior usen el nuevo formato. Ensamblados dinámicos y los ensamblados compilados con versiones anteriores de .NET Framework usan el formato XML antiguo. Consulte emitir atributos de seguridad declarativa.

En el ejemplo de código siguiente se muestra el uso de IsDefined, teniendo un MemberInfo como un 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
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: