Obsolescências de API com IDs de diagnóstico não padrão (.NET 8)

Algumas APIs foram marcadas como obsoletas, começando no .NET 8. Essa alteração interruptiva é específica para APIs que foram marcadas como obsoletas com uma ID de diagnóstico personalizada. A supressão da ID de diagnóstico de obsolescência padrão, que é CS0618 para o compilador C#, não suprime os avisos que o compilador gera quando essas APIs são usadas.

Descrição das alterações

Nas versões anteriores do .NET, essas APIs podiam ser usadas sem nenhum aviso de build. No .NET 8 e em versões posteriores, o uso dessas APIs produz um aviso ou um erro de tempo de compilação com uma ID de diagnóstico personalizada. O uso de IDs de diagnóstico personalizadas permite suprimir os avisos de obsolescência individualmente, em vez de suprimir todos eles.

A tabela a seguir lista as IDs de diagnóstico personalizadas e suas mensagens de aviso correspondentes para as APIs obsoletas.

ID do diagnóstico Descrição Severidade
SYSLIB0011 A serialização do BinaryFormatter está obsoleta Aviso/Erro
SYSLIB0048 RSA.EncryptValue(Byte[]) e RSA.DecryptValue(Byte[]) estão obsoletos. Em vez disso, use RSA.Encrypt e RSA.Decrypt. Aviso
SYSLIB0049 JsonSerializerOptions.AddContext está obsoleto. Para registrar um JsonSerializerContext, use a propriedade TypeInfoResolver ou TypeInfoResolverChain. Aviso
SYSLIB0050 A serialização baseada em formatador está obsoleta e não deve ser usada. Aviso
SYSLIB0051 APIs que dão suporte à serialização baseada em formatador obsoleta são obsoletas. Elas não devem ser chamadas nem estendidas pelo código do aplicativo. Aviso
SYSLIB0052 AS APIs que dão suporte a mecanismos obsoletos para a extensibilidade do regex são obsoletas. Aviso
SYSLIB0053 AesGcm deve indicar o tamanho da marca necessária para criptografia e descriptografia. Use um construtor que aceite o tamanho da marca. Aviso

Versão introduzida

.NET 8

Tipo de alteração interruptiva

Essas itens obsoletos podem afetar a compatibilidade com a origem.

  • Siga as diretrizes específicas fornecidas para cada ID de diagnóstico usando o link de URL fornecido no aviso.

  • Os avisos ou os erros relacionados a essas obsolescências não podem ser suprimidos usando a ID de diagnóstico padrão para tipos obsoletos ou membros. Use o valor personalizado da ID de diagnóstico SYSLIBxxxx.

APIs afetadas

SYSLIB0011

SYSLIB0048

SYSLIB0049

SYSLIB0050

SYSLIB0051

As obsolescências de API SYSLIB0051 são organizadas aqui por namespace.

Namespace Microsoft.CSharp.RuntimeBinder

Namespace Microsoft.VisualBasic.FileIO

namespace System

Namespace System.Collections

Namespace System.Collections.Generic

Namespace System.Collections.Specialized

Namespace System.ComponentModel

Namespace System.ComponentModel.Composition

Namespace System.ComponentModel.Composition.Primitives

Namespace System.ComponentModel.DataAnnotations

Namespace System.ComponentModel.Design

Namespace System.Configuration

Namespace System.Data

Namespace System.Data.Common

Namespace System.Data.Odbc

Namespace System.Data.OleDb

Namespace System.Data.SqlTypes

Namespace System.Diagnostics.Eventing.Reader

Namespace System.Diagnostics.Tracing

Namespace System.DirectoryServices

Namespace System.DirectoryServices.AccountManagement

Namespace System.DirectoryServices.ActiveDirectory

Namespace System.DirectoryServices.Protocols

Namespace System.Formats.Asn1

Namespace System.Formats.Cbor

Namespace System.Globalization

Namespace System.IO

Namespace System.Management

Namespace System.Media

Namespace System.Net

Namespace System.Net.Mail

Namespace System.Net.NetworkInformation

Namespace System.Net.Sockets

Namespace System.Reflection

Namespace System.Reflection.Metadata

Namespace System.Resources

Namespace System.Runtime.CompilerServices

Namespace System.Runtime.InteropServices

Namespace System.Runtime.Serialization

Namespace System.Security

Namespace System.Security.AccessControl

Namespace System.Security.Authentication

Namespace System.Security.Claims

Namespace System.Security.Cryptography

Namespace System.Security.Policy

Namespace System.Security.Principal

Namespace System.Text.Json

Namespace System.Text.RegularExpressions

Namespace System.Threading

Namespace System.Threading.Channels

Namespace System.Threading.Tasks

Namespace System.Transactions

Namespace System.Xml

Namespace System.Xml.Schema

Namespace System.Xml.XPath

Namespace System.Xml.Xsl

SYSLIB0052

SYSLIB0053

Confira também