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 不会影响 SslStream 或 HttpClient (此行为自 .NET 6 以来未更改)。 | 警告 |
SYSLIB0054 | Thread.VolatileRead 和 Thread.VolatileWrite 已过时。 请改用 Volatile.Read 或 Volatile.Write。 | 警告 |
SYSLIB0055 | 使用签名参数的 AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* 方法已过时。 请改用无符号重载。 |
警告 |
SYSLIB0056 | 具有自定义的 AssemblyHashAlgorithm 的 Assembly.LoadFrom 已过时。 使用没有 AssemblyHashAlgorithm 的重载。 |
警告 |
SYSLIB0057 | 二进制和文件内容的 X509Certificate2 和 X509Certificate 构造函数已过时。 |
警告 |
引入的版本
.NET 9
中断性变更的类型
这种过时可能会影响源兼容性。
建议操作
使用警告中提供的 URL 链接,遵循为每个诊断 ID 提供的特定指南。
不能使用过时类型或成员的标准诊断 ID 取消有关这些过时类型或成员的警告或错误;请改用自定义
SYSLIBxxxx
诊断 ID 值。
受影响的 API
SYSLIB0009
SYSLIB0014
SYSLIB0054
SYSLIB0055
- System.Runtime.Intrinsics.Arm.AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int64>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int16>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int32>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int16>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int64>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int32>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<SByte>, Vector128<Int16>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<Int16>, Vector128<Int32>, Byte)
- System.Runtime.Intrinsics.Arm.AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<Int32>, Vector128<Int64>, Byte)
SYSLIB0056
SYSLIB0057
- X509Certificate2(Byte[])
- X509Certificate2(ReadOnlySpan<Byte>)
- X509Certificate2(String)
- X509Certificate2(Byte[], SecureString)
- X509Certificate2(Byte[], String)
- X509Certificate2(String, SecureString)
- X509Certificate2(String, String)
- X509Certificate2(Byte[], SecureString, X509KeyStorageFlags)
- X509Certificate2(Byte[], String, X509KeyStorageFlags)
- X509Certificate2(ReadOnlySpan<Byte>, ReadOnlySpan<Char>, X509KeyStorageFlags)
- X509Certificate2(String, ReadOnlySpan<Char>, X509KeyStorageFlags)
- X509Certificate2(String, SecureString, X509KeyStorageFlags)
- X509Certificate2(String, String, X509KeyStorageFlags)
- X509Certificate(Byte[])
- X509Certificate(String)
- X509Certificate(Byte[], SecureString)
- X509Certificate(Byte[], String)
- X509Certificate(String, String, X509KeyStorageFlags)
- X509Certificate(String, SecureString)
- X509Certificate(String, String)
- X509Certificate(Byte[], SecureString, X509KeyStorageFlags)
- X509Certificate(Byte[], String, X509KeyStorageFlags)
- X509Certificate(String, SecureString, X509KeyStorageFlags)
- X509Certificate(String, String, X509KeyStorageFlags)
- Import(Byte[])
- Import(ReadOnlySpan<Byte>)
- Import(ReadOnlySpan<Byte>)
- Import(Byte[], String, X509KeyStorageFlags)
- Import(ReadOnlySpan<Byte>, ReadOnlySpan<Char>, X509KeyStorageFlags)
- Import(ReadOnlySpan<Byte>, String, X509KeyStorageFlags)
- Import(String, ReadOnlySpan<Char>, X509KeyStorageFlags)
- Import(String, String, X509KeyStorageFlags)
- CreateFromSignedFile(String)