Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

MemberInfo.IsDefined méthode (Type, Boolean)

 

Date de publication : novembre 2016

En cas de substitution dans une classe dérivée, indique si un ou plusieurs attributs du type spécifié ou de ses types dérivés sont appliquées à ce membre.

Espace de noms:   System.Reflection
Assembly:  mscorlib (dans mscorlib.dll)

public abstract bool IsDefined(
	Type attributeType,
	bool inherit
)

Paramètres

attributeType
Type: System.Type

Le type d’attribut personnalisé à rechercher. La recherche inclut des types dérivés.

inherit
Type: System.Boolean

true chaîne d'héritage de ce membre pour rechercher les attributs ; dans le cas contraire, false. Ce paramètre est ignoré pour les propriétés et événements ; consultez la section Notes.

Valeur de retour

Type: System.Boolean

true Si une ou plusieurs instances de attributeType ou un de ses types dérivés est appliqué à ce membre ; sinon, false.

Cette méthode ignore la inherit paramètre des propriétés et événements. Pour rechercher la chaîne d’héritage pour les attributs sur les propriétés et événements, utilisez les surcharges appropriées de la Attribute.IsDefined méthode.

System_CAPS_noteRemarque

Dans le .NET Framework version 2.0, cette méthode retourne true Si un type, une méthode ou un constructeur a des attributs de sécurité stockés dans le nouveau format de métadonnées. Les assemblys compilés avec la version 2.0 utilisent ce format. Assemblys dynamiques et les assemblys compilés avec les versions antérieures du .NET Framework utilisent l'ancien format XML. Consultez la page émission d'attributs de sécurité déclarative.

L’exemple suivant détermine si l’attribut spécifié est appliqué au membre spécifié.


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_IsDefined
{
    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++)
            {
                // Display the attribute if it is of type MyAttribute.
                if(myMembers[i].IsDefined(typeof(MyAttribute), false))
                {
                    Object[] myAttributes = myMembers[i].GetCustomAttributes(typeof(MyAttribute), false);
                    Console.WriteLine("\nThe attributes of type MyAttribute for the member {0} are: \n",
                        myMembers[i]);
                    for(int j = 0; j < myAttributes.Length; j++)
                        // Display the value associated with the attribute.
                        Console.WriteLine("The value of the attribute is : \"{0}\"",
                            ((MyAttribute)myAttributes[j]).Name);
                }
            }
        }
        catch(Exception e)
        {
            Console.WriteLine("An exception occurred: {0}", e.Message);
        }
    }
}

.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Retour au début
Afficher: