首页 > 技术文章 > StyleCop源码分析

foreverme 2013-10-19 17:56 原文

前言:

    由于最近在进行项目配置,配置内容:根据一个结构体,一一对应地配置xml文件(两个) 写一个和此结构体对应的类(只包含属性,字段)。反复配置后,觉得太繁琐,因此想到使用程序完成自动配置,网上搜索代码信息提取工具无果,最后想到了stylecop(一个开源代码规范校验工具)。

stylecop简介:(摘自:http://www.oschina.net/p/stylecop

ourceAnalysis (StyleCop)的终极目标是让所有人都能写出优雅和一致的代码,因此这些代码具有很高的可读性。

SourceAnalysis (StyleCop)不是代码格式化(代码美化)工具,而是代码规范检查工具(Code Review 工具),它不仅仅检查代码格式,而是编码规范,包括命名和注释等。

SourceAnalysis (StyleCop)目的是帮助项目团队执行一系列常用的源代码格式规范,这些规范是关于如何开发布局规整,易读,易维护并且文档良好的优雅代码的 (help teams enforce a common set of best practices for layout, readability, maintainability, and documentation of C# source code)。

SourceAnalysis (StyleCop) 现在包含了 200 个左右的最佳实践规则(best practice rules),这些规则与 Visual Studio 2005 和  Visual Studio 2008 中默认的代码格式化规则是一致的。

SourceAnalysis (StyleCop)可以作为 Visual studio 的插件运行,在VS中(我的是2008)对一个C#文件点击右键后的:

runSourceAnalysis

 信息提取:

    由于stylecop的代码量比较大,实在无耐心看完,因此根据提供的资料和类名进行预分析,最后写下测试代码,最后能正确提取出一个类的所有信息,函数的内容信息可以在函数的document属性中看到。测试代码如下:

修改版的stylecop代码:http://yunpan.cn/QbDZJUFKZMGpb

 

stylecop源码:http://yunpan.cn/QbDZVhAiHp56d

 

说明:由于时间的原因,未能完成stylecop的全面研究,此次的研究成果是:自己编写了CSharpParserAdapter类库,实现根据一个代码文件名或代码字符串,提取出对应的代码结构(很全面的)。

存在问题:

  1 函数的内容是在函数对象的隐藏字段中,可以调试看到,如果需要查看函数内部内容,需调整代码

  2 如果需要查看某个提取结果的具体信息,需要把其强制转换为对应的类的对象查看,这些类型的类位置为:CSharpParser/Elements中

此源码的后续作用:

  由于经过分析,发现此次的研究暂时无法应用于现在的工作,所以停止了分析。但是此次的stylecop的代码分析,可以为以后提取代码结构的需要而很好的准备

分析结果共享说明:

  希望有需要分析源码的朋友,能在此次的分析基础上,完全分析出所有信息,并共享出来

推荐阅读