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 MemberInfo.GetCustomAttributes (Boolean)

 

Publicado: octubre de 2016

Cuando se invalida en una clase derivada, devuelve una matriz de todos los atributos personalizados aplicados a este miembro.

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

public abstract object[] GetCustomAttributes(
	bool inherit
)

Parámetros

inherit
Type: System.Boolean

true para buscar la cadena de herencia de este miembro para encontrar los atributos; de lo contrario, false. Este parámetro se omite para las propiedades y eventos; vea la sección Comentarios.

Valor devuelto

Type: System.Object[]

Una matriz que contiene todos los atributos personalizados aplicados a este miembro, o matriz con cero elementos si se ha definido ningún atributo.

Exception Condition
InvalidOperationException

Este miembro pertenece a un tipo que se carga en el contexto de solo reflexión. Vea How to: Load Assemblies into the Reflection-Only Context.

TypeLoadException

No se pudo cargar un tipo de atributo personalizado.

Este método omite la inherit parámetro de propiedades y eventos. Para buscar la cadena de herencia de atributos de las propiedades y eventos, use las sobrecargas adecuadas de la Attribute.GetCustomAttributes (método).

System_CAPS_noteNota

   En la versión 2.0 de .NET Framework, este método devuelve los atributos de seguridad en métodos, constructores y tipos si se almacenan en el nuevo formato de metadatos. Los ensamblados compilados con la versión 2.0 utilizan este 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 siguiente se define un atributo personalizado y asocia el atributo con MyClass.MyMethod, recupera el atributo en tiempo de ejecución y se muestra el resultado.

using System;
using System.Reflection;

// Define a custom attribute with one named parameter.
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute : Attribute
{
    private string myName;
    public MyAttribute(string name)
    {
        myName = name;
    }
    public string Name
    {
        get
        {
            return myName;
        }
    }
}

// Define a class that has the custom attribute associated with one of its members.
public class MyClass1
{
    [MyAttribute("This is an example attribute.")]
    public void MyMethod(int i)
    {
        return;
    }
}

public class MemberInfo_GetCustomAttributes
{
    public static void Main()
    {
        try
        {
            // Get the type of MyClass1.
            Type myType = typeof(MyClass1);
            // Get the members associated with MyClass1.
            MemberInfo[] myMembers = myType.GetMembers();

            // Display the attributes for each of the members of MyClass1.
            for(int i = 0; i < myMembers.Length; i++)
            {
                Object[] myAttributes = myMembers[i].GetCustomAttributes(true);
                if(myAttributes.Length > 0)
                {
                    Console.WriteLine("\nThe attributes for the member {0} are: \n", myMembers[i]);
                    for(int j = 0; j < myAttributes.Length; j++)
                        Console.WriteLine("The type of the attribute is {0}.", myAttributes[j]);
                }
            }
        }
        catch(Exception e)
        {
            Console.WriteLine("An exception occurred: {0}", e.Message);
        }
    }
}

.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: