#nullable 禁用 - 仅适用于特定命名空间?

Ala*_*bra 8 .net c# asp.net-identity

在我的 asp.net core 项目中,我使用以下命令打开了可空警告:

<Nullable>enable</Nullable>
Run Code Online (Sandbox Code Playgroud)

一切都很好。但是在从 Identity 添加脚手架项目(例如Login.cshtmlRegister.cshtml)后,许多警告出现了。我不想碰那个(其他人的)代码(但由于某种原因我需要它)。

我可以#nullable disable在每个文件中使用,但我在想也许存在更好的解决方案?仅限制#nullable disable于特定名称空间?

Str*_*ior 11

虽然您无法在每个命名空间上禁用可空检查,但您可以通过 .editorconfig 文件自定义这些检查所显示问题的严重性。

许多项目的文件夹结构反映了它们的命名空间。如果您的项目属于这种情况,您可以将 .editorconfig 文件放入目标命名空间根目录下的文件夹中,也可以在文件夹树上的另一个 .editorconfig 文件中创建一个文件匹配模式,以将项目定位到那个文件夹。例如:

[**/Models/**.cs]
# API models will be serialized and deserialized, so they can have default constructors,
# but we assume the required values aren't null anyway.
dotnet_diagnostic.CS8618.severity = none
Run Code Online (Sandbox Code Playgroud)