(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

MemberInfo.GetCustomAttributes-Methode (Boolean)

Gibt beim Überschreiben in einer abgeleiteten Klasse ein Array mit allen benutzerdefinierten Attributen zurück, die auf diesen Member angewendet wurden.

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

public abstract Object[] GetCustomAttributes(
	bool inherit
)

Parameter

inherit
Typ: System.Boolean
true , wenn beim Suchen der Attribute die Vererbungskette dieses Members durchsucht werden soll, andernfalls false. Dieser Parameter wird für Eigenschaften und Ereignisse ignoriert, siehe Hinweise.

Rückgabewert

Typ: System.Object[]
Ein Array, das sämtliche auf diesen Member angewendeten benutzerdefinierten Attribute enthält, oder ein Array ohne Elemente, wenn keine Attribute definiert sind.

Implementiert

ICustomAttributeProvider.GetCustomAttributes(Boolean)
_MemberInfo.GetCustomAttributes(Boolean)

AusnahmeBedingung
InvalidOperationException

Dieser Member gehört zu einem Typ, der in den Reflektionskontext geladen wird. Siehe Gewusst wie: Laden von Assemblys in den reflektionsbezogenen Kontext.

TypeLoadException

Ein benutzerdefinierter Attributtyp konnte nicht geladen werden.

Diese Methode ignoriert dien inherit-Parameter für Eigenschaften und Ereignisse. Um die Vererbungskette für Attribute bei Parametern und Ereignissen zu suchen, verwenden Sie die entsprechenden Überladungen der Attribute.GetCustomAttributes-Methode.

HinweisHinweis

In .NET Framework, Version 2.0, gibt diese Methode Sicherheitsattribute für Methoden, Konstruktoren und Typen zurück, wenn diese im neuen Metadatenformat gespeichert sind. 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. Siehe Ausgeben von deklarativen Sicherheitsattributen.

Im folgenden Beispiel wird ein benutzerdefiniertes Attribut definiert und MyClass.MyMethod zugeordnet. Das Attribut wird zur Laufzeit abgerufen, und das Ergebnis wird angezeigt.


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


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft