在 C# Roslyn 分析器中,我可以检测是否启用了给定的诊断吗?

问题描述 投票:0回答:1

我正在编写一个 Roslyn 分析器,它可以检测代码中我们不喜欢的某些模式,并提出诊断(具体细节与此处无关)。 然而,检测所述模式可能是一项昂贵的操作。

如果用户使用

ruleset
文件、使用
NOWARN
或其他全局/程序集级别设置禁用了诊断,是否有一种方法可以让我在分析器内获取该诊断并在
if
中使用它声明以避免可能昂贵的零件?

我知道我可以将诊断放在它自己的

class SomeNewAnalyzer : DiagnosticAnalyzer
中,如果禁用它支持的所有诊断,编译器将不会运行该分析器,但是有没有办法作为另一个引发多个分析器的一部分来执行此操作诊断?

c# roslyn roslyn-code-analysis
1个回答
0
投票

对于未来的旅行者:我做了更多的谷歌搜索,并通过您可以从分析器中访问的 Roslyn API 进行了更深入的研究,我相当有信心在 2023 年,答案是否定的。所有迹象都表明,如果您想要关闭给定的诊断,该诊断应该位于它自己的分析器中。

© www.soinside.com 2019 - 2024. All rights reserved.