Attribute.IsDefined Method (ParameterInfo, Type, Boolean)
Determines whether any custom attributes are applied to a method parameter. Parameters specify the method parameter, the type of the custom attribute to search for, and whether to search ancestors of the method parameter.
Assembly: mscorlib (in mscorlib.dll)
Public Shared Function IsDefined ( element As ParameterInfo, attributeType As Type, inherit As Boolean ) As Boolean
Parameters
- element
-
Type:
System.Reflection.ParameterInfo
An object derived from the ParameterInfo class that describes a parameter of a member of a class.
- attributeType
-
Type:
System.Type
The type, or a base type, of the custom attribute to search for.
- inherit
-
Type:
System.Boolean
If true, specifies to also search the ancestors of element for custom attributes.
Return Value
Type: System.Booleantrue if a custom attribute of type attributeType is applied to element; otherwise, false.
| Exception | Condition |
|---|---|
| ArgumentNullException | element or attributeType is null. |
| ArgumentException | attributeType is not derived from Attribute. |
| ExecutionEngineException | element is not a method, constructor, or type. |
The following code example illustrates the use of IsDefined, taking a ParameterInfo as a parameter.
Imports System Imports System.Reflection Module DemoModule Public Class TestClass ' Assign a ParamArray attribute to the parameter using the keyword. Public Sub Method1(ByVal ParamArray args As String()) End Sub End Class Sub Main() ' Get the class type to access its metadata. Dim clsType As Type = GetType(TestClass) ' Get the MethodInfo object for Method1. Dim mInfo As MethodInfo = clsType.GetMethod("Method1") ' Get the ParameterInfo array for the method parameters. Dim pInfo() As ParameterInfo = mInfo.GetParameters() If Not pInfo(0) Is Nothing Then ' See if the ParamArray attribute is defined. Dim isDef As Boolean = Attribute.IsDefined(pInfo(0), _ GetType(ParamArrayAttribute)) Dim strDef As String If isDef = True Then strDef = "is" Else strDef = "is not" End If ' Display the result. Console.WriteLine("The ParamArray attribute {0} defined " & _ "for parameter {1} of method {2}.", _ strDef, pInfo(0).Name, mInfo.Name) Else Console.WriteLine("Could not retrieve parameter information " & _ "for method {0}.", mInfo.Name) End If End Sub End Module ' Output: ' The ParamArray attribute is defined for parameter args of method Method1.
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0