Leer en inglés

Compartir vía


ParameterInfo.GetCustomAttributes Método

Definición

Obtiene los atributos personalizados que se han aplicado a este parámetro.

Sobrecargas

GetCustomAttributes(Type, Boolean)

Obtiene los atributos personalizados del tipo especificado o sus tipos derivados que se aplican a este parámetro.

GetCustomAttributes(Boolean)

Obtiene todos los atributos personalizados definidos acerca de este parámetro.

GetCustomAttributes(Type, Boolean)

Source:
ParameterInfo.cs
Source:
ParameterInfo.cs
Source:
ParameterInfo.cs

Obtiene los atributos personalizados del tipo especificado o sus tipos derivados que se aplican a este parámetro.

C#
public virtual object[] GetCustomAttributes(Type attributeType, bool inherit);

Parámetros

attributeType
Type

Atributos personalizados identificados por el tipo especificado.

inherit
Boolean

Se omite este argumento para los objetos de este tipo.

Devoluciones

Object[]

Matriz que contiene los atributos personalizados del tipo especificado o sus tipos derivados.

Implementaciones

Excepciones

El tipo debe ser un tipo proporcionado por el sistema en tiempo de ejecución subyacente.

attributeType es null.

No ha podido cargarse un tipo de atributo personalizado.

Comentarios

Este método omite el inherit parámetro . Para buscar atributos en la cadena de herencia en parámetros, use las sobrecargas adecuadas del Attribute.GetCustomAttributes método .

Se aplica a

.NET 10 otras versiones
Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetCustomAttributes(Boolean)

Source:
ParameterInfo.cs
Source:
ParameterInfo.cs
Source:
ParameterInfo.cs

Obtiene todos los atributos personalizados definidos acerca de este parámetro.

C#
public virtual object[] GetCustomAttributes(bool inherit);

Parámetros

inherit
Boolean

Se omite este argumento para los objetos de este tipo.

Devoluciones

Object[]

Matriz que contiene todos los atributos personalizados aplicados a este parámetro.

Implementaciones

Excepciones

No ha podido cargarse un tipo de atributo personalizado.

Ejemplos

En el ejemplo siguiente se muestra cómo se pueden recuperar los atributos personalizados que se han aplicado a los parámetros de los métodos en tiempo de ejecución. En el ejemplo se define un atributo personalizado denominado MyAttribute que se puede aplicar a los parámetros. A continuación, el ejemplo define una clase denominada MyClass con un método denominado MyMethody se aplica MyAttribute a un parámetro del método .

Cuando se ejecuta el ejemplo, usa el GetCustomAttributes(Boolean) método para recuperar los atributos personalizados que se han aplicado a todos los parámetros de todos los métodos de MyClassy los muestra en la consola.

C#
using System;
using System.Reflection;

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

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

public class MemberInfo_GetCustomAttributes
{
    public static void Main()
    {
        // Get the type of the class 'MyClass1'.
        Type myType = typeof(MyClass1);
        // Get the members associated with the class 'MyClass1'.
        MethodInfo[] myMethods = myType.GetMethods();

        // Display the attributes for each of the parameters of each method of the class 'MyClass1'.
        for(int i = 0; i < myMethods.Length; i++)
        {
            // Get the parameters for the method.
            ParameterInfo[] myParameters = myMethods[i].GetParameters();

            if (myParameters.Length > 0)
            {
                Console.WriteLine("\nThe parameters for the method {0} that have custom attributes are :", myMethods[i]);
                for(int j = 0; j < myParameters.Length; j++)
                {
                    // Get the attributes of type 'MyAttribute' for each parameter.
                    Object[] myAttributes = myParameters[j].GetCustomAttributes(typeof(MyAttribute), false);

                    if (myAttributes.Length > 0)
                    {
                        Console.WriteLine("Parameter {0}, name = {1}, type = {2} has attributes: ",
                            myParameters[j].Position, myParameters[j].Name, myParameters[j].ParameterType);
                        for(int k = 0; k < myAttributes.Length; k++)
                        {
                            Console.WriteLine("\t{0}", myAttributes[k]);
                        }
                    }
                }
            }
        }
    }
}
/* This code example produces the following output:

The parameters for the method Void MyMethod(Int32) that have custom attributes are :
Parameter 0, name = i, type = System.Int32 has attributes:
        MyAttribute

The parameters for the method Boolean Equals(System.Object) that have custom attributes are :
 */

Comentarios

Este método omite el inherit parámetro . Para buscar atributos en la cadena de herencia en parámetros, use las sobrecargas adecuadas del Attribute.GetCustomAttributes método .

Se aplica a

.NET 10 otras versiones
Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1