C#、Blazor、VS:如何抑制所有 *.razor.cs 和 *.cshtml.cs 文件的 IDE0051 和 IDE0052?

C#, Blazor, VS: How to suppress IDE0051 and IDE0052 for all *.razor.cs and *.cshtml.cs files?

由于各种原因,这些文件中实际上使用了未使用的私有成员。 那个警告很烦人。

我希望在普通代码文件中出现该警告,但对于 Razor 则不然。

有一个神奇的 .editorconfig 文件可以抑制目录甚至文件扩展名的某些警告。

问题是,我不知道为 IDE0051IDE0052 禁用警告的选项。这些规则没有通常在 .editorconfig 文件中使用的名称。但是也许有一个未记录的选项可以通过“IDE0051”之类的代码来抑制警告?

我对单独分析每个文件不感兴趣,这就是重点。

如何禁用文件扩展名的特定警告?

我的解决方法是将其放入 .editorconfig 文件中:

[*.razor.cs]
generated_code = true

[*.chtml.cs]
generated_code = true

我不喜欢它,因为它禁用了所有警告,而且我希望它们中的大多数都保留下来。顺便说一句,它不是生成的代码。

问题的根源是 Blazor 访问了一些成员,但它不是在纯 C# 中完成的,以供分析器或编译器查看。根据 VS,这些成员没有参考。事实上 - 有隐式引用。如果我删除成员,代码将编译,但程序将在运行时中断。

我知道,我可以在项目级别禁用这些警告。但同样,我正在寻找如何只针对特定文件扩展名执行此操作,而不是针对项目中的所有 C# 文件。

[*.razor.cs]
dotnet_diagnostic.IDE0051.severity = none
dotnet_diagnostic.IDE0052.severity = none

[*.chtml.cs]
dotnet_diagnostic.IDE0051.severity = none
dotnet_diagnostic.IDE0052.severity = none