Displaying attributes for a class.
using System; using System.Reflection; [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] public class Creator : System.Attribute { public Creator(string name, string date) { this.name = name; this.date = date; version = 0.1; } public void Dump() { Console.WriteLine("Name {0}", name); Console.WriteLine("Date {0}", date); Console.WriteLine("Version {0}", version); } string date; string name; public double version; } [Creator("A", "01/01/2008", version = 1.1)] class ATestClass1 { ATestClass1() { } } [Creator("B", "04/01/2008", version = 1.5)] class ATestClass2 { ATestClass2() { } } [Creator("C", "12/31/2008", version = 2.5)] class ATestClass3 { ATestClass3() { } } class MainClass { public static void PrintAttributeInformation(Type classType) { Console.WriteLine("Attributes for class {0}", classType); object[] attr = classType.GetCustomAttributes(true); foreach (object o in attr) { Console.WriteLine("Attribute {0}", o); if (o is Creator) ((Creator)o).Dump(); } } public static void Main() { PrintAttributeInformation(typeof(ATestClass1)); PrintAttributeInformation(typeof(ATestClass2)); PrintAttributeInformation(typeof(ATestClass3)); } }