Obsolescence d’API avec ID de diagnostics autres que ceux par défaut (.NET 8)

Certaines API ont été marquées comme obsolètes, à compter de .NET 8. Ce changement cassant est spécifique aux API qui ont été marquées comme obsolètes avec un ID de diagnostic personnalisé. La suppression de l’ID de diagnostic d’obsolescence par défaut, qui est CS0618 pour le compilateur C#, ne supprime pas les avertissements générés par le compilateur lorsque ces API sont utilisées.

Description de la modification

Dans les versions précédentes de .NET, ces API peuvent être utilisées sans avertissement de build. Dans .NET 8 et versions ultérieures, l’utilisation de ces API génère un avertissement ou une erreur au moment de la compilation avec un ID de diagnostic personnalisé. L’utilisation des ID de diagnostic personnalisés vous permet de supprimer individuellement des avertissements d’obsolescence au lieu de tous les supprimer.

Le tableau suivant répertorie les ID de diagnostic personnalisés et leurs messages d’avertissement correspondants pour les API obsolètes.

ID de diagnostic Description Gravité
SYSLIB0011 La sérialisation BinaryFormatter est obsolète Avertissement/erreur
SYSLIB0048 RSA.EncryptValue(Byte[]) et RSA.DecryptValue(Byte[]) sont obsolètes. Utilisez plutôt RSA.Encrypt et RSA.Decrypt. Avertissement
SYSLIB0049 JsonSerializerOptions.AddContext est obsolète. Pour inscrire un JsonSerializerContext, utilisez la propriété TypeInfoResolver ou TypeInfoResolverChain. Avertissement
SYSLIB0050 La sérialisation basée sur un formateur est obsolète et ne doit pas être utilisée. Avertissement
SYSLIB0051 Les API qui prennent en charge la sérialisation obsolète basée sur le formateur sont obsolètes. Elles ne doivent pas être appelées ou étendues par le code de l’application. Avertissement
SYSLIB0052 Les API qui prennent en charge des mécanismes obsolètes pour l’extensibilité Regex sont obsolètes. Avertissement
SYSLIB0053 AesGcm doit indiquer la taille de balise requise pour le chiffrement et le déchiffrement. Utilisez un constructeur qui accepte la taille de balise. Avertissement

Version introduite

.NET 8

Type de changement cassant

Ces obsolescences peuvent affecter la compatibilité de la source.

  • Suivez les instructions spécifiques fournies pour chaque ID de diagnostic à l’aide du lien URL fourni sur l’avertissement.

  • Les avertissements ou les erreurs liés à ces obsolescences ne peuvent pas être supprimés à l’aide de l’ID de diagnostic standard pour les types ou membres obsolètes ; utilisez plutôt la valeur d’ID de diagnostic SYSLIBxxxx personnalisé.

API affectées

SYSLIB0011

SYSLIB0048

SYSLIB0049

SYSLIB0050

SYSLIB0051

Les obsolescences de l’API SYSLIB0051 sont organisées ici par espace de noms.

Microsoft.CSharp.RuntimeBinder, espace de noms

Espace de noms Microsoft.VisualBasic.FileIO

System (espace de noms)

Espace de noms System.Collections

Espace de noms System.Collections.Generic

Espace de noms System.Collections.Specialized

Espace de noms System.ComponentModel

Espace de noms System.ComponentModel.Composition

Espace de noms System.ComponentModel.Composition.Primitives

Espace de noms System.ComponentModel.DataAnnotations

Espace de noms System.ComponentModel.Design

Espace de noms System.Configuration

System.Data, espace de noms

System.Data.Common, espace de noms

Espace de noms System.Data.Odbc

Espace de noms System.Data.OleDb

System.Data.SqlTypes, espace de noms

Espace de noms System.Diagnostics.Eventing.Reader

System.Diagnostics.Tracing, espace de noms

Espace de noms System.DirectoryServices

Espace de noms System.DirectoryServices.AccountManagement

Espace de noms System.DirectoryServices.ActiveDirectory

Espace de noms System.DirectoryServices.Protocols

Espace de noms System.Formats.Asn1

Espace de noms System.Formats.Cbor

System.Globalization, espace de noms

System.IO (espace de noms)

Espace de noms System.Management

Espace de noms System.Media

Espace de noms System.Net

Espace de noms System.Net.Mail

Espace de noms System.Net.NetworkInformation

System.Net.Sockets, espace de noms

Espace de noms System.Reflection

Espace de noms System.Reflection.Metadata

System.Resources, espace de noms

Espace de noms System.Runtime.CompilerServices

Espace de noms System.Runtime.InteropServices

Espace de noms System.Runtime.Serialization

System.Security, espace de noms

Espace de noms System.Security.AccessControl

System.Security.Authentication, espace de noms

System.Security.Claims, espace de noms

System.Security.Cryptography, espace de noms

Espace de noms System.Security.Policy

System.Security.Principal, espace de noms

Espace de noms System.Text.Json

Espace de noms System.Text.RegularExpressions

Espace de noms System.Threading

Espace de noms System.Threading.Channels

Espace de noms System.Threading.Tasks

espace de noms System.Transactions

espace de noms System.Xml

System.Xml.Schema, espace de noms

System.Xml.XPath, espace de noms

Espace de noms System.Xml.Xsl

SYSLIB0052

SYSLIB0053

Voir aussi