Attribute.GetCustomAttributes Method (ParameterInfo)
![]() |
---|
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience. |
Retrieves an array of the custom attributes applied to a method parameter. A parameter specifies the method parameter.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- element
-
Type:
System.Reflection.ParameterInfo
An object derived from the ParameterInfo class that describes a parameter of a member of a class.
Return Value
Type: System.Attribute[]An Attribute array that contains the custom attributes applied to element, or an empty array if no such custom attributes exist.
Exception | Condition |
---|---|
ArgumentNullException | element is null. |
TypeLoadException | A custom attribute type cannot be loaded. |
If element represents a parameter in a method of a derived type, the return value includes the inheritable custom attributes applied to the same parameter in the overridden base methods.
The following code example demonstrates the use of GetCustomAttributes, taking a ParameterInfo as a 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. */
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0