|
日常工作中,需要為程序集提供統(tǒng)計(jì)分析:
1:程序集方法數(shù);
2:開(kāi)發(fā)人員數(shù)目及各自所開(kāi)發(fā)或REVIEW的方法數(shù);
3:測(cè)試中,被標(biāo)注有BUG的數(shù)目;
4:直接查看方法的IL代碼;
鑒于以上統(tǒng)計(jì)的需要,特開(kāi)發(fā)本EXE。
1:關(guān)于特性Attribute的知識(shí)補(bǔ)充
"Attribute是一種可由用戶(hù)自由定義的修飾符(Modifier),可以用來(lái)修飾各種需要被修飾的目標(biāo)"。它的作用是為它們的修飾目標(biāo)追加上一些額外的信息——比如"這個(gè)類(lèi)是我寫(xiě)的"或者"這個(gè)函數(shù)以前出過(guò)問(wèn)題"等等。
它跟注釋的區(qū)別是:注釋是對(duì)程序源代碼的一種說(shuō)明,主要目的是給人看的,在程序被編譯的時(shí)候會(huì)被編譯器所丟棄,因此,它絲毫不會(huì)影響到程序的執(zhí)行。而Attribute是程序代碼的一部分,不但不會(huì)被編譯器丟棄,而且還會(huì)被編譯器編譯進(jìn)程序集(Assembly)的元數(shù)據(jù)(Metadata)里,在程序運(yùn)行的時(shí)候,你隨時(shí)可以從元數(shù)據(jù)里提取出這些附加信息來(lái)決策程序的運(yùn)行。
本文所依據(jù)的就是特性這個(gè)特點(diǎn)。
2:基礎(chǔ)模塊XP.AttributeClass
根據(jù)文章開(kāi)頭的要求:統(tǒng)計(jì)開(kāi)發(fā)者、reviewer、bug信息,需要?jiǎng)?chuàng)建一個(gè)可被客戶(hù)端項(xiàng)目引用的類(lèi)庫(kù)項(xiàng)目XP.AttributeClass。該項(xiàng)目包含三個(gè)Attribute類(lèi):CreaterAttribute、ReviewerAttribute、BugAttribute。分別如下:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
public class CreaterAttribute : Attribute
{
public CreaterAttribute(string creater, string createDate)
{
Creater = creater;
CreateDate = createDate;
}
public string Creater { get; private set; }
public string CreateDate { get; private set; }
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
public class ReviewerAttribute : Attribute
{
public ReviewerAttribute(string reviewer, string reviewDate)
{
Reviewer = reviewer;
ReviewDate = reviewDate;
}
public string Reviewer { get; private set; }
public string ReviewDate { get; private set; }
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class BugAttribute : Attribute
{
public BugAttribute(bool isBug, string bugDate)
{
this.IsBug = isBug;
this.BugDate = bugDate;
}
public bool IsBug { get; private set; }
public string BugDate { get; private set; }
}
NET技術(shù):C#特性Attribute的實(shí)際應(yīng)用之:代碼統(tǒng)計(jì)分析,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。