Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Attribute.IsDefined (Método) (MemberInfo, Type, Boolean)

Determina si alguno de los atributos personalizados se aplica a un miembro de un tipo. Los parámetros especifican el miembro, el tipo del atributo personalizado que se va a buscar y si se deben buscar los antecesores del miembro.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
public static bool IsDefined(
	MemberInfo element,
	Type attributeType,
	bool inherit
)

Parámetros

element
Tipo: System.Reflection.MemberInfo
Objeto derivado de la clase MemberInfo que describe un constructor, evento, campo, método, tipo o miembro de propiedad de una clase.
attributeType
Tipo: System.Type
Tipo, o tipo base, del atributo personalizado que se va a buscar.
inherit
Tipo: System.Boolean
Si es true, especifica que se busquen también los atributos personalizados de los antecesores de element.

Valor devuelto

Tipo: System.Boolean
Es true si se aplica a element un atributo personalizado de tipo attributeType; en caso contrario, es false.
ExcepciónCondición
ArgumentNullException

El valor de element o de attributeType es null.

ArgumentException

attributeType no se deriva de Attribute.

NotSupportedException

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

NotaNota

A partir de .NET Framework 2.0, 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 utilizan el nuevo formato. Los ensamblados dinámicos y los ensamblados compilados con versiones anteriores de .NET Framework utilizan el formato XML antiguo. Vea Emitir atributos de seguridad declarativa.

En el siguiente ejemplo de código se muestra el uso de IsDefined tomando MemberInfo como 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

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.