Обзоление API с идентификаторами диагностики, не используемыми по умолчанию (.NET 9)
Некоторые API помечены как устаревшие, начиная с .NET 9. Это критическое изменение относится к API, которые были помечены как устаревшие с помощью пользовательского идентификатора диагностики. В случае отключения идентификатора диагностики устаревших элементов по умолчанию (CS0618 для компилятора C#) не отключаются предупреждения, создаваемые компилятором при использовании этих API.
Описание изменения
В предыдущих версиях .NET эти API можно использовать без каких-либо предупреждений сборки. В .NET 9 и более поздних версиях эти API создают предупреждение во время компиляции или ошибку с пользовательским идентификатором диагностики. Применение пользовательских идентификаторов диагностики позволяет отключать предупреждения об устаревших элементах по отдельности вместо общего запрета всех таких предупреждений.
В следующей таблице перечислены пользовательские идентификаторы диагностики и соответствующие им предупреждающие сообщения для устаревших API.
ИД диагностики | Description | Серьезность |
---|---|---|
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 | Assembly.LoadFrom с пользовательским AssemblyHashAlgorithm является устаревшим. Используйте перегрузки без AssemblyHashAlgorithm . |
Предупреждение |
SYSLIB0057 | X509Certificate2 и X509Certificate конструкторы для содержимого двоичного файла устарели. |
Предупреждение |
Представленные версии
.NET 9
Тип критического изменения
Эти обнажения могут повлиять на совместимость источников.
Рекомендуемое действие
Следуйте указаниям, приведенным для каждого идентификатора диагностики, используя URL, предоставленный в предупреждении.
Предупреждения или ошибки об этих устаревших элементах нельзя отключить с помощью стандартного идентификатора диагностики для устаревших типов или членов. Используйте вместо него пользовательский идентификатор диагностики
SYSLIBxxxx
.
Затронутые 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)