.NET - 哪些系统程序集被注释为可空引用类型?

.NET - Which system assemblies are annotated for nullable reference types?

我正在尝试查找有关 C# 8 的 可空引用类型 功能的 .NET 系统程序集的状态。

未注释的代码或使用较早语言版本编写的代码将被视为“不为空”,这意味着编译器不会生成任何关于可空性的警告。

从启用可为空的上下文中使用系统程序集时,这真的很烦人,因为无法判断是否需要进行空检查。

有什么方法可以检查程序集是否针对可空引用类型进行了注释?

或者是否有关于此的官方状态页面?

在 VS 16.10 中,您应该能够通过对您在代码中使用的程序集中的符号使用转到定义来查看是否在外部程序集中启用了可空性。如果启用了可空性,您应该会在文件顶部看到 #nullable enable。当使用最新的 C# 扩展时,这似乎也适用于 VS Code。

请注意,在 VS 中,这目前需要在选项 -> 文本编辑器 -> C# -> 高级中禁用“导航到反编译源(实验)”。

就状态页面而言——它可能会帮助您查看 dotnet 运行时存储库中的 this issue,其中概述了某些系统程序集何时可以为空注释。