Mega Code Archive

 
Categories / C# / Reflection
 

Gets all the custom attributes defined on this parameter

using System; using System.Reflection; [AttributeUsage(AttributeTargets.Parameter)] public class MyAttribute : Attribute {     private string myName;     public MyAttribute(string name)     {         myName = name;     }     public string Name      {         get          {             return myName;         }     } } public class MyClass1 {     public void MyMethod([MyAttribute("This is an example parameter attribute")]int i)     {         return;     } } public class MemberInfo_GetCustomAttributes  {     public static void Main()     {         Type myType = typeof(MyClass1);         MethodInfo[] myMethods = myType.GetMethods();         for(int i = 0; i < myMethods.Length; i++)         {             ParameterInfo[] myParameters = myMethods[i].GetParameters();             if (myParameters.Length > 0)             {                 Console.WriteLine(myMethods[i]);                 for(int j = 0; j < myParameters.Length; j++)                 {                     Object[] myAttributes = myParameters[j].GetCustomAttributes(typeof(MyAttribute), false);                     if (myAttributes.Length > 0)                     {                         Console.WriteLine(myParameters[j].Position);                         Console.WriteLine(myParameters[j].Name);                         Console.WriteLine(myParameters[j].ParameterType);                         for(int k = 0; k < myAttributes.Length; k++)                         {                             Console.WriteLine("\t{0}", myAttributes[k]);                         }                     }                 }             }         }       } }