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

Attribute.GetCustomAttributes-Methode: (ParameterInfo, Type, Boolean)

 

Veröffentlicht: Oktober 2016

Ruft ein Array mit den benutzerdefinierten Attributen, die auf einen Methodenparameter angewendet. Parameter geben den Methodenparameter und den Typ des zu suchenden benutzerdefinierten Attributs und frühere Versionen des Methodenparameters gesucht werden sollen.

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

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

Parameter

element
Type: System.Reflection.ParameterInfo

Ein abgeleitetes Objekt aus der ParameterInfo -Klasse, die einen Parameter eines Members einer Klasse beschreibt.

attributeType
Type: System.Type

Der Typ oder einen Basistyp des benutzerdefinierten Attributs zu suchen.

inherit
Type: System.Boolean

Wenn true, gibt auch suchen die Vorgänger des element für benutzerdefinierte Attribute.

Rückgabewert

Type: System.Attribute[]

Ein Attribute -Array, das die benutzerdefinierten Attribute des Typs enthält attributeType angewendet element, oder ein leeres Array, wenn keine benutzerdefinierten Attribute vorhanden sind.

Exception Condition
ArgumentNullException

element oder attributeType ist null.

ArgumentException

attributeType stammt nicht von Attribute.

TypeLoadException

Ein benutzerdefiniertes Attribut kann nicht geladen werden.

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

Das folgende Codebeispiel veranschaulicht die Verwendung von GetCustomAttributes, wobei eine ParameterInfo als Parameter.

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
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: