API 已过时并带有非默认诊断 ID (.NET 9)

从 .NET 9 开始,某些 API 标记为已过时。 此中断性变更特定于标记为已过时并带有自定义诊断 ID 的 API。 取消默认过时诊断 ID(对于 C# 编译器,即为 CS0618),不会取消使用这些 API 时编译器生成的警告。

更改描述

在以前的 .NET 版本中,可以使用这些 API,而不会引发任何生成警告。 在 .NET 9 及更高版本中,使用这些 API 会生成编译时警告或错误,并显示自定义诊断 ID。 使用自定义诊断 ID 可单独取消某个过时警告,而不是取消所有过时警告。

下表列出了已过时 API 的自定义诊断 ID 及其相应的警告消息。

诊断 ID 说明 严重性
SYSLIB0009 不支持 AuthenticationManager。 方法将不进行操作或引发 PlatformNotSupportedException 警告
SYSLIB0014 ServicePointManager 已完全过时。 设置 ServicePointManager 不会影响 SslStreamHttpClient (此行为自 .NET 6 以来未更改)。 警告
SYSLIB0054 Thread.VolatileReadThread.VolatileWrite 已过时。 请改用 Volatile.ReadVolatile.Write 警告
SYSLIB0055 使用签名参数的 AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* 方法已过时。 请改用无符号重载。 警告
SYSLIB0056 具有自定义的 Assembly.LoadFromAssemblyHashAlgorithm 已过时。 使用没有 AssemblyHashAlgorithm 的重载。 警告
SYSLIB0057 二进制和文件内容的 X509Certificate2X509Certificate 构造函数已过时。 警告

引入的版本

.NET 9

中断性变更的类型

这种过时可能会影响源兼容性

  • 使用警告中提供的 URL 链接,遵循为每个诊断 ID 提供的特定指南。

  • 不能使用过时类型或成员的标准诊断 ID 取消有关这些过时类型或成员的警告或错误;请改用自定义 SYSLIBxxxx 诊断 ID 值。

受影响的 API

SYSLIB0009

SYSLIB0014

SYSLIB0054

SYSLIB0055

SYSLIB0056

SYSLIB0057

另请参阅