Exportieren (0) 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

Attribute.GetCustomAttribute-Methode (MemberInfo, Type, Boolean)

Ruft ein benutzerdefiniertes Attribut ab, das auf den Member eines Typs angewendet wird. Parameter geben den Member und den Typ des zu suchenden benutzerdefinierten Attributs an und außerdem, ob auch frühere Versionen des Members gesucht werden sollen.

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

public static Attribute GetCustomAttribute(
	MemberInfo element,
	Type attributeType,
	bool inherit
)

Parameter

element
Typ: System.Reflection.MemberInfo
Ein Objekt, das aus der MemberInfo-Klasse abgeleitet wurde und einen Konstruktor-, Ereignis-, Feld-, Methoden- oder Eigenschaftenmember einer Klasse beschreibt.
attributeType
Typ: System.Type
Der Typ des benutzerdefinierten Attributs oder ein Basistyp, nach dem gesucht werden soll.
inherit
Typ: System.Boolean
Wenn true, wird angegeben, dass auch die früheren Versionen von element hinsichtlich benutzerdefinierter Attribute durchsucht werden sollen.

Rückgabewert

Typ: System.Attribute
Ein Verweis auf das einzige benutzerdefinierte Attribut vom Typ attributeType, das für element übernommen wird, oder null, wenn kein solches Attribut vorhanden ist.

AusnahmeBedingung
ArgumentNullException

element oder attributeType ist null.

ArgumentException

attributeType ist nicht von Attribute abgeleitet.

NotSupportedException

element ist kein Konstruktor, keine Methode, keine Eigenschaft, kein Ereignis, kein Typ und kein Feld.

AmbiguousMatchException

Es wurden mehrere der erforderlichen Attribute gefunden.

TypeLoadException

Ein benutzerdefinierter Attributtyp kann nicht geladen werden.

HinweisHinweis

Ab .NET Framework, Version 2.0, gibt diese Methode für Typen, Methoden und Konstruktoren Sicherheitsattribute zurück, wenn die Attribute im neuen Metadatenformat gespeichert wurden. Mit Version 2.0 oder höher kompilierte Assemblys verwenden das neue 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 Codebeispiel wird die Verwendung der GetCustomAttribute-Methode veranschaulicht, die den MemberInfo-Parameter annimmt.


using System;
using System.Reflection;

namespace IsDef4CS 
{
    public class TestClass 
    {
        // Assign the Obsolete attribute to a method.
        [Obsolete("This method is obsolete. Use Method2 instead.")]
        public void Method1()
        {}
        public void Method2()
        {}
    }

    public class DemoClass 
    {
        static void Main(string[] args) 
        {
            // Get the class type to access its metadata.
            Type clsType = typeof(TestClass);
            // Get the MethodInfo object for Method1.
            MethodInfo mInfo = clsType.GetMethod("Method1");
            // See if the Obsolete attribute is defined for this method.
            bool isDef = Attribute.IsDefined(mInfo, typeof(ObsoleteAttribute));
            // Display the result.
            Console.WriteLine("The Obsolete Attribute {0} defined for {1} of class {2}.",
                isDef ? "is" : "is not", mInfo.Name, clsType.Name);
            // If it's defined, display the attribute's message.
            if (isDef) 
            {
                ObsoleteAttribute obsAttr = 
                                 (ObsoleteAttribute)Attribute.GetCustomAttribute( 
                                                    mInfo, typeof(ObsoleteAttribute));
                if (obsAttr != null)
                    Console.WriteLine("The message is: \"{0}\".",
                        obsAttr.Message);
                else
                    Console.WriteLine("The message could not be retrieved.");
            }
        }
    }
}

/*
 * Output:
 * The Obsolete Attribute is defined for Method1 of class TestClass.
 * The message is: "This method is obsolete. Use Method2 instead.".
 */


.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
Anzeigen:
© 2015 Microsoft