Attribute.IsDefined Method (ParameterInfo, Type)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Determines whether any custom attributes are applied to a method parameter. Parameters specify the method parameter, and the type of the custom attribute to search for.

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

Public Shared Function IsDefined (
	element As ParameterInfo,
	attributeType As Type
) As Boolean


Type: System.Reflection.ParameterInfo

An object derived from the ParameterInfo class that describes a parameter of a member of a class.

Type: System.Type

The type, or a base type, of the custom attribute to search for.

Return Value

Type: System.Boolean

true if a custom attribute of type attributeType is applied to element; otherwise, false.

Exception Condition

element or attributeType is null.


attributeType is not derived from Attribute.

The ancestors of element are searched for custom attributes.

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), _
            Dim strDef As String
            If isDef = True Then
                strDef = "is"
                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)
            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.

.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top