Partilhar via


Descontinuamento de API com IDs de diagnóstico que não são padrão (.NET 8)

Algumas APIs foram marcadas como obsoletas, começando no .NET 8. Esta alteração crítica é específica para APIs que foram marcadas como obsoletas com um ID de diagnóstico personalizado. Suprimir a 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.

Alterar descrição

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

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

ID de diagnóstico Descrição Severidade
SYSLIB0011 A serialização BinaryFormatter está obsoleta Aviso/erro
SYSLIB0048 RSA.EncryptValue(Byte[]) e RSA.DecryptValue(Byte[]) são obsoletas. Use RSA.Encrypt e RSA.Decrypt em vez disso. Advertência
SYSLIB0049 JsonSerializerOptions.AddContext está obsoleto. Para registrar um JsonSerializerContext, use a propriedade TypeInfoResolver ou TypeInfoResolverChain. Advertência
SYSLIB0050 A serialização baseada em Formatter é obsoleta e não deve ser usada. Advertência
SYSLIB0051 As APIs que suportam a serialização obsoleta baseada em formatador estão obsoletas. Eles não devem ser chamados ou estendidos pelo código do aplicativo. Advertência
SYSLIB0052 As APIs que suportam mecanismos obsoletos para extensibilidade Regex estão obsoletas. Advertência
SYSLIB0053 AesGcm deve indicar o tamanho da etiqueta necessária para encriptação e desencriptação. Utilize um construtor que aceita o tamanho da etiqueta. Advertência

Versão introduzida

.NET 8

Tipo de mudança disruptiva

Essas obsolescências podem afetar compatibilidade do código-fonte.

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

  • Avisos ou erros para tipos ou membros obsoletos não podem ser suprimidos usando o identificador de diagnóstico padrão; use em vez disso o valor personalizado de identificador de diagnóstico SYSLIBxxxx.

APIs afetadas

SYSLIB0011

SYSLIB0048

SYSLIB0049

SYSLIB0050

SYSLIB0051

As APIs obsoletas são organizadas aqui por namespace.

Namespace Microsoft.CSharp.RuntimeBinder

Namespace Microsoft.VisualBasic.FileIO

Namespace do sistema

Namespace System.Collections

System.Collections.Generic namespace (namespace das coleções genéricas)

Namespace "System.Collections.Specialized"

Namespace System.ComponentModel

System.ComponentModel.Composition namespace

System.ComponentModel.Composition.Primitives namespace

System.ComponentModel.DataAnnotations namespace

System.ComponentModel.Design namespace

Namespace System.Configuration

Namespace System.Data

System.Data.Common namespace

System.Data.Odbc namespace

System.Data.OleDb namespace

System.Data.SqlTypes namespace

System.Diagnostics.Eventing.Reader namespace (espaço de nomes)

System.Diagnostics.Tracing namespace

System.DirectoryServices namespace

Namespace System.DirectoryServices.AccountManagement

Namespace System.DirectoryServices.ActiveDirectory

System.DirectoryServices.Protocols namespace

System.Formats.Asn1 namespace

System.Formats.Cbor namespace

Namespace System.Globalization

System.IO namespace

Namespace System.Management

Namespace System.Media

System.Net namespace

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

System.Runtime.Serialization namespace

Namespace de System.Security

System.Security.AccessControl namespace

System.Security.Authentication namespace

System.Security.Claims namespace

System.Security.Cryptography namespace

Namespace System.Security.Policy

Namespace System.Security.Principal

System.Text.Json namespace

Namespace System.Text.RegularExpressions

Namespace System.Threading

Namespace System.Threading.Channels

Namespace System.Threading.Tasks

Namespace System.Transactions

Namespace System.Xml

System.Xml.Schema namespace

Namespace System.Xml.XPath

System.Xml.Xsl namespace

SYSLIB0052

SYSLIB0053

Ver também