Share via


Obsolescencias de API con identificadores de diagnóstico no predeterminados (.NET 8)

Algunas API se han marcado como obsoletas a partir de .NET 8. Este cambio importante es específico de las API que se han marcado como obsoletas con un identificador de diagnóstico personalizado. La supresión del identificador de diagnóstico de obsolescencia predeterminado, que es CS0618 en el caso del compilador de C#, no suprime las advertencias que genera el compilador cuando se usan estas API.

Descripción del cambio

En versiones anteriores de .NET, estas API se pueden usar sin ninguna advertencia de compilación. En .NET 8 y versiones posteriores, el uso de estas API genera una advertencia o un error en tiempo de compilación con un identificador de diagnóstico personalizado. El uso de identificadores de diagnóstico personalizados permite suprimir las advertencias de obsolescencia de forma individual en lugar de realizar una supresión global de todas las advertencias de obsolescencia.

En la tabla siguiente se indican los identificadores de diagnóstico personalizados y sus mensajes de advertencia correspondientes para las API obsoletas.

Id. de diagnóstico Descripción Gravedad
SYSLIB0011 la serialización BinaryFormatter está obsoleta Advertencia o error
SYSLIB0048 RSA.EncryptValue(Byte[]) y RSA.DecryptValue(Byte[]) están obsoletos. Utilice RSA.Encrypt y RSA.Decrypt en su lugar. Advertencia
SYSLIB0049 JsonSerializerOptions.AddContext está obsoleto. Para registrar un jsonSerializerContext, use la propiedad TypeInfoResolver o TypeInfoResolverChain. Advertencia
SYSLIB0050 La serialización basada en formateador está obsoleta y no debe usarse. Advertencia
SYSLIB0051 Las API que admiten la serialización basada en formateador obsoleta están obsoletas. El código de la aplicación no debe llamarlas ni ampliarlas. Advertencia
SYSLIB0052 Las API que admiten mecanismos obsoletos para la extensibilidad Regex están obsoletas. Advertencia
SYSLIB0053 AesGcm debe indicar el tamaño de etiqueta necesario para el cifrado y el descifrado. Use un constructor que acepte el tamaño de etiqueta. Advertencia

Versión introducida

.NET 8

Tipo de cambio importante

Estas obsolescencias pueden afectar a la compatibilidad con orígenes de datos.

  • Siga las instrucciones específicas proporcionadas para cada identificador de diagnóstico mediante el vínculo de dirección URL que aparece en la advertencia.

  • Las advertencias o los errores de estas obsolescencias no pueden suprimirse mediante el identificador de diagnóstico estándar para tipos o miembros obsoletos; use el valor del identificador de diagnóstico SYSLIBxxxx personalizado en su lugar.

API afectadas

SYSLIB0011

SYSLIB0048

SYSLIB0049

SYSLIB0050

SYSLIB0051

Las obsolescencias de API SYSLIB0051 se organizan aquí por espacio de nombres.

Espacio de nombres Microsoft.CSharp.RuntimeBinder

Espacio de nombres Microsoft.VisualBasic.FileIO

System (espacio de nombres)

Espacio de nombres System.Collections

Espacio de nombres System.Collections.Generic

Espacio de nombres System.Collections.Specialized

Espacio de nombres System.ComponentModel

Espacio de nombres System.ComponentModel.Composition

Espacio de nombres System.ComponentModel.Composition.Primitives

Espacio de nombres System.ComponentModel.DataAnnotations

Espacio de nombres System.ComponentModel.Design

Espacio de nombres System.Configuration

Espacio de nombres System.Data

Espacio de nombres System.Data.Common

Espacio de nombres System.Data.Odbc

Espacio de nombres System.Data.OleDb

System.Data.SqlTypes, espacio de nombres

Espacio de nombres System.Diagnostics.Eventing.Reader

Espacio de nombres System.Diagnostics.Tracing

Espacio de nombres System.DirectoryServices

Espacio de nombres System.DirectoryServices.AccountManagement

Espacio de nombres System.DirectoryServices.ActiveDirectory

Espacio de nombres System.DirectoryServices.Protocols

Espacio de nombres System.Formats.Asn1

Espacio de nombres System.Formats.Cbor

System.Globalization (Espacio de nombres)

System.IO (espacio de nombres)

Espacio de nombres System.Management

Espacio de nombres System.Media

Espacio de nombres System.Net

Espacio de nombres System.Net.Mail

Espacio de nombres System.Net.NetworkInformation

Espacio de nombres System.Net.Sockets

Espacio de nombres System.Reflection

Espacio de nombres System.Reflection.Metadata

System.Resources (Espacio de nombres)

Espacio de nombres System.Runtime.CompilerServices

Espacio de nombres System.Runtime.InteropServices

Espacio de nombres System.Runtime.Serialization

Espacio de nombres System.Security

Espacio de nombres System.Security.AccessControl

Espacio de nombres System.Security.Authentication

Espacio de nombres System.Security.Claims

Espacio de nombres System.Security.Cryptography

Espacio de nombres System.Security.Policy

Espacio de nombres System.Security.Principal

Espacio de nombres System.Text.Json

Espacio de nombres System.Text.RegularExpressions

System.Threading (espacio de nombres)

Espacio de nombres System.Threading.Channels

System.Threading.Tasks (espacio de nombres)

System.Transactions, espacio de nombres

espacio de nombres System.Xml

espacio de nombres System.Xml.Schema

Espacio de nombres System.Xml.XPath

Espacio de nombres System.Xml.Xsl

SYSLIB0052

SYSLIB0053

Vea también