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

 

Publicado: octubre de 2016

Recupera una matriz de los atributos personalizados aplicados a un parámetro de método. Un parámetro especifica el parámetro de método.

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

public static Attribute[] GetCustomAttributes(
	ParameterInfo element
)

Parámetros

element
Type: System.Reflection.ParameterInfo

Un objeto derivado de la ParameterInfo clase que describe un parámetro de un miembro de una clase.

Valor devuelto

Type: System.Attribute[]

Matriz Attribute que contiene los atributos personalizados aplicados a element, o una matriz vacía si no existe ningún atributo personalizado.

Exception Condition
ArgumentNullException

El valor de element es null.

TypeLoadException

No se puede cargar un tipo de atributo personalizado.

Si element representa un parámetro en un método de un tipo derivado, el valor devuelto incluye los atributos personalizados heredables aplicados al mismo parámetro en los métodos base reemplazados.

En el ejemplo de código siguiente se muestra el uso de GetCustomAttributes, teniendo un ParameterInfo como un parámetro.

using System;
using System.Reflection;
using System.ComponentModel;

namespace CustAttrs5CS {
    public class AClass {
        public void ParamArrayAndDesc(
            // Add ParamArray (with the keyword) and Description attributes.
            [Description("This argument is a ParamArray")]
            params int[] args)
        {}
    }

    class DemoClass {
        static void Main(string[] args) {
            // Get the Class type to access its metadata.
            Type clsType = typeof(AClass);
            // Get the type information for the method.
            MethodInfo mInfo = clsType.GetMethod("ParamArrayAndDesc");
            if (mInfo != null) {
                // Get the parameter information.
                ParameterInfo[] pInfo = mInfo.GetParameters();
                if (pInfo != null) {
                    // Iterate through all the attributes for the parameter.
                    foreach(Attribute attr in 
                        Attribute.GetCustomAttributes(pInfo[0])) {
                        // Check for the ParamArray attribute.
                        if (attr.GetType() == typeof(ParamArrayAttribute))
                            Console.WriteLine("Parameter {0} for method {1} " +
                                "has the ParamArray attribute.",
                                pInfo[0].Name, mInfo.Name);
                        // Check for the Description attribute.
                        else if (attr.GetType() == 
                            typeof(DescriptionAttribute)) {
                            Console.WriteLine("Parameter {0} for method {1} " +
                                "has a description attribute.",
                                pInfo[0].Name, mInfo.Name);
                            Console.WriteLine("The description is: \"{0}\"",
                                ((DescriptionAttribute)attr).Description);
                        }
                    }
                }
            }
        }
    }
}

/*
 * Output:
 * Parameter args for method ParamArrayAndDesc has a description attribute.
 * The description is: "This argument is a ParamArray"
 * Parameter args for method ParamArrayAndDesc has the ParamArray attribute.
 */

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