诊断分析器
一. 安装Microsoft.CodeAnalysis.CSharp
二. 实现一个自定义类
类必须增加[DiagnosticAnalyzer]标注
类必须继续自DiagnosticAnalyzer
-
定义诊断描述符: 定义了一个诊断描述符 DiagnosticDescriptor,用于描述当检测到类声明时报告的诊断信息。
-
支持的诊断:返回此分析器支持的诊断列表,仅包含上面定义的 DiagnosticDescriptor。
-
初始化分析器:
a. 配置分析器不分析生成的代码。
b. 允许分析器并发执行以提高性能。
c. 注册一个语法节点动作来进行语法分析 -
定义语法节点动作: 在节点动作方法中,将正在分析的语法节点,不符合要求,则报告诊断。
例:
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Diagnostics;
using System.Collections.Immutable;
// 此属性表示 ClassDeclarationAnalyzer 类是一个针对 C# 语言的诊断分析器
[DiagnosticAnalyzer(LanguageNames.CSharp