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)
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.
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. */
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0