建立标准编码规则(一)-自定义C#代码分析器

Roslyn提供了相关的SDK,可以通过SDK来开发自己的代码分析器:

首先需要安装.Net Compiler Platform SDK:
  VS2017 15.5之前的版本可以通过下面连接下载并安装:
  https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.NETCompilerPlatformSDK
  VS2017 15.5之后的版本可以通过Visual Studio Installer进行安装:

  640?wx_fmt=png

 

分析器代码简介:

  • 代码结构:

  创建的项目中一共有三个子项目,分别是分析器、分析器测试项目以及vsix安装包项目如下图所示:

  640?wx_fmt=png

  其中分析器项目中包含了分析器(Analyzer1Analyzer)、代码修复器(Analyzer1CodeFixProvider)和相关的资源(Resources.resx)。

  • 分析器(Analyzer1Analyzer):

  分析器代码的核心内容是注册一个命名符号处理器(用于处理类名、接口名等),处理器的工作是判断分析的符合(名称)中是否包含小写字符,如果包含那么给出诊断信息(诊断信息定义包含在资源文件中)。

  640?wx_fmt=png

  • 代码修复器:

  将小写字符转换为大写:

  640?wx_fmt=png

  • 代码调试:

  将vsix项目设为启动项目,就可以对分析器进行调试,调试时VS会在沙盘中启动一个新的VS实例,通过这个VS创建一个项目,编写代码时即可看到分析器给出的诊断结果和代码修复:

  640?wx_fmt=png

  诊断信息:

  640?wx_fmt=png

  修复结果:

  640?wx_fmt=png

  查看语法树:

  640?wx_fmt=jpeg

 
总结:
官方已经提供了一个完整的机遇Roslyn的代码分析器自定义模板;
我们需要新建基于此模板的分析器程序就可以了;
我们可以根据公司的项目规定按指定的规则设计代码分析器规则;

 

 参考:C# and Visual Basic - Use Roslyn to Write a Live Code Analyzer for Your API

posted on 2020-05-26 18:30  andywu188  阅读(327)  评论(0编辑  收藏  举报

导航