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.

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

public static bool IsDefined(
	ParameterInfo element,
	Type attributeType,
	bool inherit
)

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.Boolean

true 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.

using System;
using System.Reflection;

namespace IsDef5CS 
{
    public class TestClass 
    {
        // Assign a ParamArray attribute to the parameter using the keyword.
        public void Method1(params String[] args)
        {}
    }

    public class DemoClass 
    {
        static void Main(string[] args) 
        {
            // Get the class type to access its metadata.
            Type clsType = typeof(TestClass);
            // Get the MethodInfo object for Method1.
            MethodInfo mInfo = clsType.GetMethod("Method1");
            // Get the ParameterInfo array for the method parameters.
            ParameterInfo[] pInfo = mInfo.GetParameters();
            if (pInfo != null) 
            {
                // See if the ParamArray attribute is defined.
                bool isDef = Attribute.IsDefined(pInfo[0], 
                                                 typeof(ParamArrayAttribute));
                // Display the result.
                Console.WriteLine("The ParamArray attribute {0} defined for " +
                                  "parameter {1} of method {2}.",
                                  isDef ? "is" : "is not",
                                  pInfo[0].Name, 
                                  mInfo.Name);
            }
            else
                Console.WriteLine("The parameters information could " +
                            "not be retrieved for method {0}.", mInfo.Name);
        }
    }
}

/*
 * 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
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top
Show: