Mega Code Archive

 
Categories / C# / Reflection
 

If attribute of the type or its derived types is applied

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;         }     } } [AttributeUsage(AttributeTargets.Parameter)] public class MyDerivedAttribute : MyAttribute {     public MyDerivedAttribute(string name) : base(name) {} } public class MyClass1 {     public void MyMethod(         [MyAttribute("This is an example parameter attribute")]         int i,         [MyDerivedAttribute("This is another parameter attribute")]         int j,         int k )     {         return;     } } public class MemberInfo_GetCustomAttributes  {     public static void Main()     {         Type myType = typeof(MyClass1);         MethodInfo[] myMethods = myType.GetMethods();         foreach (MethodInfo mi in myMethods)         {             ParameterInfo[] myParameters = mi.GetParameters();             if (myParameters.Length > 0)             {                 Console.WriteLine(mi);                 foreach (ParameterInfo pi in myParameters)                 {                     if (pi.IsDefined(typeof(MyAttribute), false))                     {                         Console.WriteLine(pi.Position);                         Console.WriteLine(pi.Name);                         Console.WriteLine(pi.ParameterType);                     }                 }             }         }       } }