前言:

由于最近在进行项目配置,配置内容:根据一个结构体,一一对应地配置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#文件点击右键后的:

信息提取:

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

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

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

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

存在问题:

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

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

此源码的后续作用:

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

分析结果共享说明:

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

最新文章

  1. mysql 日志表rename 备份
  2. 【简易版】HashMap(增删改查)
  3. android:id="@id/resid" , andorid:id="@+id/resid" 的区别
  4. c#委托(1)
  5. ios 控件
  6. Qt 自定义model实现文件系统的文件名排序(重定义sort函数即可。忽然开窍了:其实捕捉点击Header事件,内部重排序,全部刷新显示即可)
  7. 关联 Android 源代码 到 Ecplise
  8. Spring ProxyFactory
  9. 发一下关于公司的HOUSE OF HELLO 关于假货网站的声明吧
  10. Div+Css(一)必备知识
  11. ORA-16525: the Data Guard broker is not yet available
  12. 镜像的缓存特性 - 每天5分钟玩转 Docker 容器技术(14)
  13. iOS开发-OC中TabView的编辑
  14. iOS中 用FMDB封装一个SQLite数据库
  15. centosFTP服务搭建及权限配置
  16. 怎么用Verilog语言描述同步FIFO和异步FIFO
  17. Java设计模式之二 ----- 工厂模式
  18. asp.net Request、Request.Form、Request.QueryString的区别(转)
  19. Nodejs----简介
  20. leetcode-algorithms-13 Roman to Integer

热门文章

  1. hbase shell基础和常用命令详解(转)
  2. Gridview导出EXCEL(多页) z
  3. intellJ实用技巧
  4. 48. Remove Duplicates from Sorted List && Remove Duplicates from Sorted List II
  5. git 相关
  6. libssh2 的集成与应用
  7. UITaleView的基础使用及数据展示操作
  8. ftp服务器远程拷贝命令
  9. delphi 10 seattle 安卓服务开发(三)
  10. IMoniker接口的成员