过时 API 的新诊断 ID

之前,一些 API 已过时,且未使用自定义诊断 ID。 从 .NET 6 开始,这些 API 将使用不同的自定义诊断 ID 报告为过时。 对于通过 CS0618 使用这些 API,如果禁止显示相关警告,请修改禁止显示,以使用 SYSLIB0003SYSLIB0019SYSLIB0020 这三个新诊断 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

另请参阅