Attribute.GetCustomAttributes Method (ParameterInfo, Boolean)
Retrieves an array of the custom attributes applied to a method parameter. Parameters specify the method parameter, and whether to search ancestors of the method parameter.
Assembly: mscorlib (in mscorlib.dll)
Public Shared Function GetCustomAttributes ( element As ParameterInfo, inherit As Boolean ) As Attribute()
Parameters
- element
-
Type:
System.Reflection.ParameterInfo
An object derived from the ParameterInfo class that describes a parameter of a member of a class.
- inherit
-
Type:
System.Boolean
If true, specifies to also search the ancestors of element for custom attributes.
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 |
|---|---|
| ArgumentException | The Member property of element is null. |
| 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.
Imports System Imports System.Reflection Imports System.ComponentModel Module DemoModule Public Class AClass ' Add Description and ParamArray (with the keyword) attributes. Public Sub ParamArrayAndDesc( _ <Description("This argument is a ParamArray")> _ ByVal ParamArray args() As Integer) End Sub End Class Sub Main() ' Get the Class type to access its metadata. Dim clsType As Type = GetType(AClass) ' Get the type information for the method. Dim mInfo As MethodInfo = clsType.GetMethod("ParamArrayAndDesc") ' Get the Parameter information for the method. Dim pInfo() As ParameterInfo = mInfo.GetParameters() Dim attr As Attribute ' Iterate through each attribute of the parameter. For Each attr In Attribute.GetCustomAttributes(pInfo(0)) ' Check for the ParamArray attribute. If TypeOf attr Is ParamArrayAttribute Then ' Convert the attribute to access its data. Dim paAttr As ParamArrayAttribute = _ CType(attr, ParamArrayAttribute) Console.WriteLine("Parameter {0} has the " + _ "ParamArray attribute.", pInfo(0).Name) ' Check for the Description attribute. ElseIf TypeOf attr Is DescriptionAttribute Then ' Convert the attribute to access its data. Dim descAttr As DescriptionAttribute = _ CType(attr, DescriptionAttribute) Console.WriteLine("Parameter {0} has a description " + _ "attribute. The description is:", pInfo(0).Name) Console.WriteLine(descAttr.Description) End If Next End Sub End Module ' Output: ' Parameter args has a description attribute. The description is: ' This argument is a ParamArray ' Parameter args 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