.NET的Attribute代码实现统计分析

    文章来源:万象互联 更新时间:2012-10-31 20:53:14
分享:

日常工作中,需要为程序集提供统计分析:

1:程序集方法数;

2:开发人员数目及各自所开发或REVIEW的方法数;

3:测试中,被标注有BUG的数目;

4:直接查看方法的IL代码;

鉴于以上统计的需要,特开发本EXE。

1:关于特性Attribute的知识补充

"Attribute是一种可由用户自由定义的修饰符(Modifier),可以用来修饰各种需要被修饰的目标"。它的作用是为它们的修饰目标追加上一些额外的信息——比如"这个类是我写的"或者"这个函数以前出过问题"等等。

它跟注释的区别是:注释是对程序源代码的一种说明,主要目的是给人看的,在程序被编译的时候会被编译器所丢弃,因此,它丝毫不会影响到程序的执行。而Attribute是程序代码的一部分,不但不会被编译器丢弃,而且还会被编译器编译进程序集(Assembly)的元数据(Metadata)里,在程序运行的时候,你随时可以从元数据里提取出这些附加信息来决策程序的运行。

本文所依据的就是特性这个特点。

2:基础模块XP.AttributeClass

根据文章开头的要求:统计开发者、reviewer、bug信息,需要创建一个可被客户端项目引用的类库项目XP.AttributeClass。该项目包含三个Attribute类:CreaterAttribute、ReviewerAttribute、BugAttribute。分别如下:

3:引用XP.AttributeClass

在我们自己的程序集中,需要为自己的类或方法加上这类特性,参考如下:

	
	
  1. [CreaterAttribute("join", "2010年12月14日")]    
  2. class class1     
  3.  {          
  4. [CreaterAttribute("join", "2010年12月14日")]          
  5. [BugAttribute(true, "2010年12月14日")]          
  6. [ReviewerAttribute("hy", "2010年12月14日")]          
  7. private void Test1()         
  8.  {         
  9.  }          
  10. [ReviewerAttribute("hy", "2010年12月14日")]            
  11. public void Test2()         
  12.  {         
  13.  }          
  14. public void Test3()         
  15.  {         
  16.  }    } 


4:统计分析模块XP.CodeStatistics

XP.CodeStatistics是本工具的核心模块,包括了四个功能:获取程序集、获取IL代码、统计分析。核心类如下,本文不再赘述,请直接查看源码。

文章来源:http://www.hulian.top,转载请注明!

版权说明:本站原创文章,由万象互联SEO优化发表.
本文地址:https://www.hulian.top/zixun/post/5346.html
在线咨询
  • 在线时间
  • 8:00-21:00