/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /* Example17_4.cs illustrates the GetCustomAttributes method */ using System; public class Example17_4 { public static void Main() { // retrieve all attributes of Class1 Console.WriteLine("Class1 attributes: "); object[] aAttributes = Attribute.GetCustomAttributes( typeof(Class1)); foreach (object attr in aAttributes) { Console.WriteLine(attr); } } } // declare an attribute named UnitTest // UnitTest.Written is either true or false public class UnitTest : Attribute { bool bWritten; public bool Written() { return bWritten; } public UnitTest(bool Written) { bWritten = Written; } } // declare another attribute named LifeCycle // LifeCycle.Stage returns a string public class LifeCycle : Attribute { string sStage; public string Stage() { return sStage; } public LifeCycle(string Stage) { sStage = Stage; } } // apply the attribues to a class [UnitTest(true)] [LifeCycle("Coding")] public class Class1 { }