Attribute::GetCustomAttributes Method (ParameterInfo^)
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: array<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 namespace System; using namespace System::Reflection; using namespace System::ComponentModel; namespace CustAttrs5CS { public ref class AClass { public: void ParamArrayAndDesc( // Add ParamArray and Description attributes. [Description("This argument is a ParamArray")] array<Int32>^args ) {} }; ref class DemoClass { public: static void Main() { // Get the Class type to access its metadata. Type^ clsType = AClass::typeid; // Get the type information for the method. MethodInfo^ mInfo = clsType->GetMethod( "ParamArrayAndDesc" ); if ( mInfo != nullptr ) { // Get the parameter information. array<ParameterInfo^>^pInfo = mInfo->GetParameters(); if ( pInfo != nullptr ) { // Iterate through all the attributes for the parameter. System::Collections::IEnumerator^ myEnum4 = Attribute::GetCustomAttributes( pInfo[ 0 ] )->GetEnumerator(); while ( myEnum4->MoveNext() ) { Attribute^ attr = safe_cast<Attribute^>(myEnum4->Current); // Check for the ParamArray attribute. if ( attr->GetType() == ParamArrayAttribute::typeid ) Console::WriteLine( "Parameter {0} for method {1} " "has the ParamArray attribute.", pInfo[ 0 ]->Name, mInfo->Name ); // Check for the Description attribute. else // Check for the Description attribute. if ( attr->GetType() == DescriptionAttribute::typeid ) { Console::WriteLine( "Parameter {0} for method {1} " "has a description attribute.", pInfo[ 0 ]->Name, mInfo->Name ); Console::WriteLine( "The description is: \"{0}\"", (dynamic_cast<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