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.GetCustomAttribute (MemberInfo, Type)

 

Publicado: octubre de 2016

Recupera un atributo personalizado aplicado a un miembro de un tipo. Los parámetros especifican el miembro y el tipo del atributo personalizado que se buscará.

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

public static Attribute GetCustomAttribute(
	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 o propiedad de miembro de una clase.

attributeType
Type: System.Type

El tipo o un tipo base, del atributo personalizado que se buscará.

Valor devuelto

Type: System.Attribute

Una referencia al atributo personalizado único de tipo attributeType que se aplica a element, o null si no hay ningún atributo de este tipo.

Exception Condition
ArgumentNullException

El valor de element o attributeType es null.

ArgumentException

attributeTypeno se deriva de Attribute.

NotSupportedException

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

AmbiguousMatchException

Se encontró más de uno de los atributos solicitados.

TypeLoadException

No se puede cargar un tipo de atributo personalizado.

Una coincidencia se determina de la misma manera que se describe en la sección de valor devuelto de Type.IsAssignableFrom.

System_CAPS_noteNota

A partir de la versión 2.0 de .NET Framework, este método devuelve los atributos de seguridad de tipos, métodos y constructores si los atributos se almacenan en el nuevo formato de metadatos. Los ensamblados compilados con la versión 2.0 o posterior, usan el nuevo formato. Ensamblados dinámicos y los ensamblados compilados con versiones anteriores de .NET Framework usan el formato XML antiguo. Vea emitir atributos de seguridad declarativa.

En el ejemplo de código siguiente se muestra el uso de la GetCustomAttribute tomar método 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: