Mega Code Archive

 
Categories / C# / Reflection
 

Represents the base class for custom attributes

using System; using System.Reflection; public enum Animal {     Dog = 1,     Cat,     Bird, } public class AnimalTypeAttribute : Attribute {     public AnimalTypeAttribute(Animal pet) {         thePet = pet;     }     protected Animal thePet;     public Animal Pet {         get { return thePet; }         set { thePet = value; }     } } class AnimalTypeTestClass {     [AnimalType(Animal.Dog)]     public void DogMethod() {}     [AnimalType(Animal.Cat)]     public void CatMethod() {}     [AnimalType(Animal.Bird)]     public void BirdMethod() {} } class DemoClass {     static void Main(string[] args) {         AnimalTypeTestClass testClass = new AnimalTypeTestClass();         Type type = testClass.GetType();         foreach(MethodInfo mInfo in type.GetMethods()) {             foreach (Attribute attr in                 Attribute.GetCustomAttributes(mInfo)) {                 if (attr.GetType() == typeof(AnimalTypeAttribute))                     Console.WriteLine(mInfo.Name);                     Console.WriteLine(((AnimalTypeAttribute)attr).Pet);             }         }     } }