Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

MemberInfo.IsDefined-Methode: (Type, Boolean)

 

Veröffentlicht: Oktober 2016

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt an, ob ein oder mehrere Attribute des angegebenen Typs oder seiner abgeleiteten Typen auf diesen Member angewendet wird.

Namespace:   System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public abstract bool IsDefined(
	Type attributeType,
	bool inherit
)

Parameter

attributeType
Type: System.Type

Der Typ des zu suchenden benutzerdefinierten Attributs. Die Suche enthält abgeleitete Typen.

inherit
Type: System.Boolean

true die Attribute die Vererbungskette dieses Members gesucht werden soll. andernfalls false. Dieser Parameter wird für Eigenschaften und Ereignisse ignoriert. Siehe Hinweise.

Rückgabewert

Type: System.Boolean

true Wenn eine oder mehrere Instanzen von attributeType oder einer seiner abgeleiteten Typen auf diesen Member angewendet wurde, andernfalls ist false.

Diese Methode ignoriert die inherit Parameter für Eigenschaften und Ereignisse. Um die Vererbungskette für Attribute, Eigenschaften und Ereignisse zu suchen, verwenden Sie die entsprechenden Überladungen der Attribute.IsDefined Methode.

System_CAPS_noteHinweis

In .NET Framework, Version 2.0, gibt diese Methode true wenn ein Typ, eine Methode oder ein Konstruktor Sicherheitsattribute, die im neuen Metadatenformat gespeichert wurden. Mit Version 2.0 kompilierte Assemblys verwenden dieses Format. Dynamische Assemblys und mit früheren Versionen von .NET Framework kompilierte Assemblys verwenden das alte XML-Format. Finden Sie unter Ausgeben von deklarativen Sicherheitsattributen.

Im folgenden Beispiel wird bestimmt, ob das angegebene Attribut auf den angegebenen Member angewendet wird.


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
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: