Partager via


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

Certaines API ont été marquées comme obsolètes, à partir de .NET 8. Ce changement majeur est spécifique aux API marquées 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 produit 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.

Identifiant de diagnostic Descriptif Sévérité
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 formatteur 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 personnalisé SYSLIBxxxx.

API affectées

SYSLIB0011

SYSLIB0048

SYSLIB0049

SYSLIB0050

SYSLIB0051

Les éléments obsolètes de l’API SYSLIB0051 sont organisés ici par espace de noms.

Espace de noms Microsoft.CSharp.RuntimeBinder

Espace de noms Microsoft.VisualBasic.FileIO

Espace de noms système

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

Espace de noms System.Data

Espace de noms System.Data.Common

Espace de noms System.Data.Odbc

Espace de noms System.Data.OleDb

Espace de noms System.Data.SqlTypes

Espace de noms System.Diagnostics.Eventing.Reader

Espace de noms System.Diagnostics.Tracing

Espace de noms System.DirectoryServices

Espace de nom 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

Espace de noms System.Globalization

espace de noms System.IO

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

Espace de noms System.Net.Sockets

Espace de noms System.Reflection

Espace de noms System.Reflection.Metadata

Espace de noms System.Resources

Espace de noms System.Runtime.CompilerServices

Espace de noms System.Runtime.InteropServices

Espace de noms System.Runtime.Serialization

Espace de noms System.Security

Espace de noms System.Security.AccessControl

Espace de noms System.Security.Authentication

Espace de noms System.Security.Claims

Espace de noms System.Security.Cryptography

Espace de noms System.Security.Policy

Espace de noms System.Security.Principal

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

Espace de noms System.Xml.Schema

Espace de noms System.Xml.XPath

Espace de noms System.Xml.Xsl

SYSLIB0052

SYSLIB0053

Voir aussi