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:WebRequest、HttpWebRequest、ServicePoint、WebClient 已过时 ServicePointManager 已完全过时。 设置 ServicePointManager 不会影响 SslStreamHttpClient (此行为自 .NET 6 以来未更改)。 警告
SYSLIB0054 Thread.VolatileReadThread.VolatileWrite 已过时。 请改用 Volatile.ReadVolatile.Write 警告
SYSLIB0055 使用签名参数的 AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* 方法已过时。 请改用无符号重载。 警告
SYSLIB0056 具有自定义的 AssemblyHashAlgorithmAssembly.LoadFrom 已过时。 使用没有 AssemblyHashAlgorithm 的重载。 警告
SYSLIB0057 二进制和文件内容的 X509Certificate2X509Certificate 构造函数已过时。 警告

引入的版本

.NET 9

中断性变更的类型

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

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

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

受影响的 API

SYSLIB0009

SYSLIB0014

SYSLIB0054

SYSLIB0055

SYSLIB0056

SYSLIB0057

另请参阅