过时 API 的新诊断 ID
之前,一些 API 已过时,且未使用自定义诊断 ID。 从 .NET 6 开始,这些 API 将使用不同的自定义诊断 ID 报告为过时。 对于通过 CS0618 使用这些 API,如果禁止显示相关警告,请修改禁止显示,以使用 SYSLIB0003、SYSLIB0019 和 SYSLIB0020 这三个新诊断 ID。
更改说明
下表显示了列出的已过时 API 的新旧诊断 ID。
API | 以前的诊断 ID | 新诊断 ID |
---|---|---|
Thread.GetCompressedStack() | CS0618 | SYSLIB0003 |
Thread.SetCompressedStack(CompressedStack) | CS0618 | SYSLIB0003 |
RuntimeEnvironment.SystemConfigurationFile | CS0618 | SYSLIB0019 |
RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid) | CS0618 | SYSLIB0019 |
RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid) | CS0618 | SYSLIB0019 |
JsonSerializerOptions.IgnoreNullValues | CS0618 | SYSLIB0020 |
引入的版本
.NET 6
更改原因
从 .NET 5 开始,过时信息旨在使用自定义诊断 ID 值来允许细化的警告抑制。 当过时的 API 需要保持引用状态时,这会带来更好的体验。 此处受影响的过时信息应在最初将 API 标记为 [Obsolete]
时应用自定义诊断 ID 值。
建议的操作
如果 SYSLIB0003、SYSLIB0019 或 SYSLIB0020 诊断 ID 是从生成获得的,请查看受影响的 API 的使用情况。 如果可能,请避免使用这些 API,并参考消息和文档中的替代方法。 如果需要保留对过时 API 的引用,且需要阻止诊断,请使用新诊断 ID(而非 CS0618)阻止显示警告。
受影响的 API
- System.Threading.Thread.GetCompressedStack()
- System.Threading.Thread.SetCompressedStack(CompressedStack)
- System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid)
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid)
- System.Text.Json.JsonSerializerOptions.IgnoreNullValues
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈