Reflecting of Attribute via IL in CLR探索
在這里,我只想從幾個側面來探討下CLR環境下的Attribute.
首先,我們來看一個Reflecting in Attribute的例子:
using System;
using System.Reflection;
public class AttributesReflectingonAttributes
{
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);
}
}
}
[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("AA", "01-12-2000", Comment="Joe' Code")]
[CodeReview("BB", "01-01-2000", Comment="Revisit this section")]
class Complex
{
}
這樣,我們在這個例子中得到的輸出結果是把Complex類的CodeReview這個Attribute里面的參數給輸出來了.
System的Type這個類中的GetCustomAttributes方法,在派生類中被重寫的時候,返回由System.Type表示的自定義屬性的數組.
posted on 2007-10-15 16:26 lbq1221119 閱讀(477) 評論(0) 收藏 舉報
浙公網安備 33010602011771號