Displaying attributes for a class. : Attributes « Reflection « C# / C Sharp






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));
    }
}

   
    
    
  








Related examples in the same category

1.Use GetCustomAttribute
2.Attributes:Reflecting on AttributesAttributes:Reflecting on Attributes
3.Specifies flags that describe the attributes of a field.Specifies flags that describe the attributes of a field.
4.Defines a company name custom attribute for an assembly manifest.
5.Defines a copyright custom attribute for an assembly manifest.
6.Represents the base class for custom attributes.
7.Retrieves a custom attribute applied to a specified assembly.
8.Retrieves a custom attribute applied to a member of a type.
9.Get a custom attribute applied to a member of a type.
10.Get an array of the custom attributes applied to an assembly. A parameter specifies the assembly.
11.Get an array of the custom attributes applied to a method parameter.
12.Attribute.IsDefaultAttribute
13.Attribute.IsDefined
14.Determines whether any custom attributes are applied to an assembly.
15.Determines whether any custom attributes are applied to a member of a type.
16.Determines whether any custom attributes of a specified type are applied to a module.
17.Determines whether any custom attributes are applied to a method parameter.
18.Indicates to compilers that a method call or attribute should be ignored unless a specified conditional compilation symbol is defined.
19.Get member attribute
20.Attributed Types Utility
21.Retrieve Method Attribute Only
22.Retrieve Field Attribute List
23.Get Types With Attribute
24.Get Methods With Attribute
25.Get attribute value and convert to other type