Reflecting on Attributes : Attributes Reflection « Attribute « C# / CSharp Tutorial






//Code revised from 
//A Programmer's Introduction to C# 2.0, Third Edition

using System;
using System.Reflection;

[AttributeUsage(AttributeTargets.Class, AllowMultiple=true)]

public class CodeReviewAttribute: System.Attribute
{
    public CodeReviewAttribute(string reviewer, string date)
    {
        this.reviewer = reviewer;
        this.date = date;
    }
    public string Comment
    {
        get
        {
            return(comment);
        }
        set
        {
            comment = value;
        }
    }
    public string Date
    {
        get
        {
            return(date);
        }
    }
    public string Reviewer
    {
        get
        {
            return(reviewer);
        }
    }
    string reviewer;
    string date;
    string comment;
}

[CodeReview("Name1", "01-12-2000", Comment="comment1")]
[CodeReview("Name2", "01-01-2012", Comment="comment2")]
class Complex
{
}

class MainClass
{
    public static void Main()
    {
        Type type = typeof(Complex);
        foreach (CodeReviewAttribute att in
        type.GetCustomAttributes(typeof(CodeReviewAttribute), false))
        {
            Console.WriteLine("Reviewer: {0}", att.Reviewer);
            Console.WriteLine("Date: {0}", att.Date);
            Console.WriteLine("Comment: {0}", att.Comment);
        }
    }
}
Reviewer: Name2
Date: 01-01-2012
Comment: comment2
Reviewer: Name1
Date: 01-12-2000
Comment: comment1








10.5.Attributes Reflection
10.5.1.Reflecting on Attributes
10.5.2.Retrieve Attribute by using reflection
10.5.3.Use Reflection to get the Attribute
10.5.4.Use the GetCustomAttributes method
10.5.5.Load class method by Attribute