Lire en anglais

Partager via


ParameterInfo.GetCustomAttributes Méthode

Définition

Obtient les attributs personnalisés appliqués à ce paramètre.

Surcharges

GetCustomAttributes(Type, Boolean)

Obtient les attributs personnalisés du type spécifié ou de ses types dérivés qui sont appliqués à ce paramètre.

GetCustomAttributes(Boolean)

Obtient tous les attributs personnalisés définis sur ce paramètre.

GetCustomAttributes(Type, Boolean)

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

Obtient les attributs personnalisés du type spécifié ou de ses types dérivés qui sont appliqués à ce paramètre.

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

Paramètres

attributeType
Type

Attributs personnalisés identifiés par type.

inherit
Boolean

Cet argument est ignoré pour les objets de ce type.

Retours

Object[]

Tableau qui contient les attributs personnalisés du type spécifié ou de ses types dérivés.

Implémente

Exceptions

Le type doit être un type fourni par le système runtime sous-jacent.

attributeType a la valeur null.

Un type d'attribut personnalisé ne peut pas être chargé.

Remarques

Cette méthode ignore le inherit paramètre. Pour rechercher des attributs sur des paramètres dans la chaîne d’héritage, utilisez les surcharges appropriées de la Attribute.GetCustomAttributes méthode.

S’applique à

.NET 10 et autres versions
Produit Versions
.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

Obtient tous les attributs personnalisés définis sur ce paramètre.

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

Paramètres

inherit
Boolean

Cet argument est ignoré pour les objets de ce type.

Retours

Object[]

Tableau qui contient tous les attributs personnalisés appliqués à ce paramètre.

Implémente

Exceptions

Un type d'attribut personnalisé ne peut pas être chargé.

Exemples

L’exemple suivant montre comment les attributs personnalisés qui ont été appliqués aux paramètres des méthodes peuvent être récupérés au moment de l’exécution. L’exemple définit un attribut personnalisé nommé MyAttribute qui peut être appliqué aux paramètres. L’exemple définit ensuite une classe nommée MyClass avec une méthode nommée MyMethodet s’applique MyAttribute à un paramètre de la méthode.

Lorsque l’exemple est exécuté, il utilise la GetCustomAttributes(Boolean) méthode pour récupérer les attributs personnalisés qui ont été appliqués à tous les paramètres de toutes les méthodes dans MyClass, et les affiche dans la console.

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 :
 */

Remarques

Cette méthode ignore le inherit paramètre. Pour rechercher des attributs sur des paramètres dans la chaîne d’héritage, utilisez les surcharges appropriées de la Attribute.GetCustomAttributes méthode.

S’applique à

.NET 10 et autres versions
Produit Versions
.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