如何从 CLI 制作 c# 分析器,以警告使用 !操作员

How to make c# analyzer from CLI, to warn on usage of ! operator

好吧,像往常一样,msft 文档对我来说毫无用处。这是我的问题:

我如何使用 CLI(linux 上的 dotnet 6.0 SDK)制作分析器,并在我 dotnet build 其他项目时使用它 运行,如果使用空宽恕运算符 (!)。我不使用 visual studio。另外,我如何验证分析器是否正在由 dotnet build 加载/初始化。

对于上下文,我们需要一个 __unwrap<T>() 辅助方法,它会在 运行 时检查对象确实不为空,而不是牺牲安全性。这里的这个项目似乎对我不起作用:https://github.com/tom-englert/Nullable.Extended#roslyn-analyzer

使用前面提到的 nuget 分析器(对于阅读本文的其他人:dotnet add package Nullable.Extended.Analyzer),您需要指定其诊断 ID 的严重性 (NX0001..3)。

There are multiple ways to do it。如果您愿意,请随意遵循 Global AnalyzerConfig 方法,但为了简单起见,我将使用 .editorconfig 文件(您可能已经有一个):

[*.cs]
dotnet_diagnostic.NX0001.severity=warning
dotnet_diagnostic.NX0002.severity=warning
dotnet_diagnostic.NX0003.severity=warning

可以找到 3 个不同的 ID 和一些描述 in the source code。您还可以在那里看到 DiagnosticDescriptor 是使用 DiagnosticSeverity.Info 创建的 - 在执行 dotnet build 时不会显示 - 因此需要手动覆盖为警告。