Mega Code Archive

 
Categories / C# / Reflection
 

Get an array of the custom attributes applied to a method parameter

using System;     using System.Reflection;     using System.ComponentModel;     public class AClass {         public void ParamArrayAndDesc(             [Description("This argument is a ParamArray")]             params int[] args)         {}     }     class DemoClass {         static void Main(string[] args) {             Type clsType = typeof(AClass);             MethodInfo mInfo = clsType.GetMethod("ParamArrayAndDesc");             if (mInfo != null) {                 ParameterInfo[] pInfo = mInfo.GetParameters();                 if (pInfo != null) {                     foreach(Attribute attr in Attribute.GetCustomAttributes(pInfo[0])) {                         if (attr.GetType() == typeof(ParamArrayAttribute))                             Console.WriteLine("Parameter {0} for method {1} has the ParamArray attribute.",pInfo[0].Name, mInfo.Name);                         else if (attr.GetType() == typeof(DescriptionAttribute)) {                             Console.WriteLine("Parameter {0} for method {1} has a description attribute.",pInfo[0].Name, mInfo.Name);                             Console.WriteLine("The description is: \"{0}\"",((DescriptionAttribute)attr).Description);                         }                     }                 }             }         }     }