(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

Attribute.GetCustomAttributes-Methode (ParameterInfo, Boolean)

Ruft ein Array der benutzerdefinierten Attribute ab, die auf einen Methodenparameter angewendet werden. Parameter geben den Methodenparameter an, und außerdem, ob frühere Versionen des Methodenparameters gesucht werden sollen.

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

public static Attribute[] GetCustomAttributes(
	ParameterInfo element,
	bool inherit
)

Parameter

element
Typ: System.Reflection.ParameterInfo
Ein Objekt, das von der ParameterInfo-Klasse abgeleitet wurde und einen Parameter eines Klassenmembers beschreibt.
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 Attribute-Array mit den benutzerdefinierten Attributen, die für element übernommen werden, oder ein leeres Array, wenn keine benutzerdefinierten Attribute vorhanden sind.

AusnahmeBedingung
ArgumentException

Die Member-Eigenschaft von element ist null.

ArgumentNullException

element ist null.

TypeLoadException

Ein benutzerdefinierter Attributtyp kann nicht geladen werden.

Wenn element einen Parameter in einer Methode eines abgeleiteten Typs darstellt, enthält der zurückgegebene Wert die vererbbaren benutzerdefinierten Attribute, die für denselben Parameter in den überschriebenen Basismethoden übernommen wurden.

Im folgenden Codebeispiel wird die Verwendung der GetCustomAttributes-Methode veranschaulicht, die ein ParameterInfo als Parameter annimmt.


using System;
using System.Reflection;
using System.ComponentModel;

namespace CustAttrs5CS {
    public class AClass {
        public void ParamArrayAndDesc(
            // Add ParamArray (with the keyword) and Description attributes.
            [Description("This argument is a ParamArray")]
            params int[] args)
        {}
    }

    class DemoClass {
        static void Main(string[] args) {
            // Get the Class type to access its metadata.
            Type clsType = typeof(AClass);
            // Get the type information for the method.
            MethodInfo mInfo = clsType.GetMethod("ParamArrayAndDesc");
            if (mInfo != null) {
                // Get the parameter information.
                ParameterInfo[] pInfo = mInfo.GetParameters();
                if (pInfo != null) {
                    // Iterate through all the attributes for the parameter.
                    foreach(Attribute attr in 
                        Attribute.GetCustomAttributes(pInfo[0])) {
                        // Check for the ParamArray attribute.
                        if (attr.GetType() == typeof(ParamArrayAttribute))
                            Console.WriteLine("Parameter {0} for method {1} " +
                                "has the ParamArray attribute.",
                                pInfo[0].Name, mInfo.Name);
                        // Check for the Description attribute.
                        else if (attr.GetType() == 
                            typeof(DescriptionAttribute)) {
                            Console.WriteLine("Parameter {0} for method {1} " +
                                "has a description attribute.",
                                pInfo[0].Name, mInfo.Name);
                            Console.WriteLine("The description is: \"{0}\"",
                                ((DescriptionAttribute)attr).Description);
                        }
                    }
                }
            }
        }
    }
}

/*
 * Output:
 * Parameter args for method ParamArrayAndDesc has a description attribute.
 * The description is: "This argument is a ParamArray"
 * Parameter args for method ParamArrayAndDesc has the ParamArray attribute.
 */


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