如何配置Rider或Roslyn将特定类使用标记为警告?以System.Math为例
如何将特定类的使用标记为警告(以System.Math为例)
方法一:使用Rider配置
- 打开Rider设置(快捷键
Ctrl+Alt+S),导航到Editor | Inspection Settings | Inspection Severity - 在搜索框输入「Symbol usage inspection」,找到对应的检查项
- 点击右侧的「Configure」,添加新规则:
- 目标类型选择「Static method call」
- 符号名称填写
System.Math.*,匹配该类下所有静态方法 - 将规则严重级别设为Warning,并勾选「Show as error stripe and underline」
- 保存设置后,项目中所有
System.Math的静态方法调用都会被标黄警告并显示下划线
方法二:使用Roslyn(通过.editorconfig或自定义分析器)
快捷方式:.editorconfig配置
在项目根目录的.editorconfig文件中添加以下规则,直接将System.Math的使用标记为警告:
# 禁止使用System.Math的所有静态成员,标记为警告 dotnet_diagnostic.avoid_system_math.severity = warning dotnet_code_quality.avoid_system_math.enabled = true dotnet_code_quality.avoid_system_math.symbols = System.Math.* dotnet_code_quality.avoid_system_math.kind = StaticMethod
注:部分旧版Roslyn可能需要先引入
Microsoft.CodeAnalysis.FxCopAnalyzersNuGet包才能生效。
灵活方式:自定义Roslyn分析器
如果需要更复杂的逻辑(比如特定场景才触发警告),可以编写自定义分析器:
- 创建.NET Standard类库项目,安装
Microsoft.CodeAnalysis.Analyzers和Microsoft.CodeAnalysis.CSharpNuGet包 - 编写分析器类,继承
DiagnosticAnalyzer,在语法接收器中检测InvocationExpressionSyntax节点,判断是否属于System.Math的静态方法调用 - 定义诊断规则,将严重级别设为
Warning,指定下划线样式 - 将分析器打包为NuGet包,添加到目标项目,即可在编译和IDE中生效
内容的提问来源于stack exchange,提问作者Nikolai
相关产品推荐
相关产品推荐

