Обсозоление API с идентификаторами диагностики, не используемыми по умолчанию (.NET 8)

Некоторые API помечены как устаревшие, начиная с .NET 8. Это критическое изменение относится к API, которые были помечены как устаревшие с помощью пользовательского идентификатора диагностики. В случае отключения идентификатора диагностики устаревших элементов по умолчанию (CS0618 для компилятора C#) не отключаются предупреждения, создаваемые компилятором при использовании этих API.

Описание изменения

В предыдущих версиях .NET эти API можно использовать без каких-либо предупреждений сборки. В .NET 8 и более поздних версиях эти API создают предупреждение во время компиляции или ошибку с пользовательским идентификатором диагностики. Применение пользовательских идентификаторов диагностики позволяет отключать предупреждения об устаревших элементах по отдельности вместо общего запрета всех таких предупреждений.

В следующей таблице перечислены пользовательские идентификаторы диагностики и соответствующие им предупреждающие сообщения для устаревших API.

ИД диагностики Description Серьезность
SYSLIB0011 Сериализация BinaryFormatter устарела Предупреждение или ошибка
SYSLIB0048 RSA.EncryptValue(Byte[]) и RSA.DecryptValue(Byte[]) являются устаревшими. Взамен используйте RSA.Encrypt и RSA.Decrypt. Предупреждение
SYSLIB0049 JsonSerializerOptions.AddContext устарел. Чтобы зарегистрировать JsonSerializerContext, используйте свойство TypeInfoResolver или TypeInfoResolverChain. Предупреждение
SYSLIB0050 Сериализация на основе форматирования устарела и не должна использоваться. Предупреждение
SYSLIB0051 ИНТЕРФЕЙСы API, поддерживающие устаревшую сериализацию на основе форматирования, устарели. Они не должны вызываться или расширяться кодом приложения. Предупреждение
SYSLIB0052 ИНТЕРФЕЙСы API, поддерживающие устаревшие механизмы расширения Regex, устарели. Предупреждение
SYSLIB0053 AesGcm должен указывать требуемый размер тега для шифрования и расшифровки. Используйте конструктор, который принимает размер тега. Предупреждение

Представленные версии

.NET 8

Тип критического изменения

Эти обнажения могут повлиять на совместимость источников.

  • Следуйте указаниям, приведенным для каждого идентификатора диагностики, используя URL, предоставленный в предупреждении.

  • Предупреждения или ошибки об этих устаревших элементах нельзя отключить с помощью стандартного идентификатора диагностики для устаревших типов или членов. Используйте вместо него пользовательский идентификатор диагностики SYSLIBxxxx.

Затронутые API

SYSLIB0011

SYSLIB0048

SYSLIB0049

SYSLIB0050

SYSLIB0051

Обзоления SYSLIB0051 API организованы здесь по пространству имен.

Пространство имен Microsoft.CSharp.RuntimeBinder

Пространство имен Microsoft.VisualBasic.FileIO

Пространство имен System

Пространство имен System.Collections

Пространство имен System.Collections.Generic

System.Collections.Специализированное пространство имен

Пространство имен System.ComponentModel

Пространство имен System.ComponentModel.Composition

Пространство имен System.ComponentModel.Composition.Primitives

Пространство имен System.ComponentModel.DataAnnotations

пространство имен System.ComponentModel.Design

Пространство имен System.Configuration

Пространство имен System.Data

Пространство имен System.Data.Common

Пространство имен System.Data.Odbc

Пространство имен System.Data.OleDb

Пространство имен System.Data.SqlTypes

Пространство имен System.Diagnostics.Eventing.Reader

Пространство имен System.Diagnostics.Tracing

Пространство имен System.DirectoryServices

Пространство имен System.DirectoryServices.AccountManagement

Пространство имен System.DirectoryServices.ActiveDirectory

Пространство имен System.DirectoryServices.Protocols

Пространство имен System.Formats.Asn1

Пространство имен System.Formats.Cbor

Пространство имен System.Globalization

пространство имен System.IO

Пространство имен System.Management

Пространство имен System.Media

пространство имен System.Net

Пространство имен System.Net.Mail

Пространство имен System.Net.NetworkInformation

Пространство имен System.Net.Sockets

Пространства имен System.Reflection

Системы. Рефлексия ion. Пространство имен метаданных

Пространство имен System.Resources

Пространство имен System.Runtime.CompilerServices

Пространство имен System.Runtime.InteropServices

Пространство имен System.Runtime.Serialization

Пространство имен System.Security

Пространство имен System.Security.AccessControl

Пространство имен System.Security.Authentication

Пространство имен System.Security.Claims

Пространство имен System.Security.Cryptography

Пространство имен System.Security.Policy

Пространство имен System.Security.Principal

Пространство имен System.Text.Json

Пространство имен System.Text.RegularExpressions

Пространство имен System.Threading

Пространство имен System.Threading.Channel

Пространство имен System.Threading.Tasks

System.Transactions, пространство имен

Пространство имен System.Xml

Пространство имен System.Xml.Schema

Пространство имен System.Xml.XPath

Пространство имен System.Xml.Xsl

SYSLIB0052

SYSLIB0053

См. также