API obsolete con ID di diagnostica non predefiniti (.NET 6)

Alcune API sono state contrassegnate come obsolete, a partire da .NET 6. Questa modifica che causa un'interruzione è specifica per le API contrassegnate come obsolete con un ID di diagnostica personalizzato. L'eliminazione dell'ID di diagnostica di obsolescenza predefinito, ovvero CS0618 per il compilatore C#, non elimina gli avvisi generati dal compilatore quando vengono usate queste API.

Descrizione delle modifiche

Nelle versioni precedenti di .NET queste API possono essere usate senza avvisi di compilazione. In .NET 6 e versioni successive l'uso di queste API genera un avviso o un errore in fase di compilazione con un ID di diagnostica personalizzato. L'uso di ID di diagnostica personalizzati consente di eliminare singolarmente gli avvisi di obsolescenza anziché eliminare tutti gli avvisi di obsolescenza.

La tabella seguente elenca gli ID di diagnostica personalizzati e i relativi messaggi di avviso corrispondenti per le API obsolete.

ID di diagnostica Descrizione Gravità
SYSLIB0013 Uri.EscapeUriString(String) può danneggiare la stringa URI in alcuni casi. È consigliabile usare invece Uri.EscapeDataString(String) per i componenti della stringa di query. Avviso
SYSLIB0014 WebRequest, HttpWebRequest, ServicePoint e WebClient sono obsoleti. Utilizzare invece HttpClient. Avviso
SYSLIB0015 DisablePrivateReflectionAttribute non ha alcun effetto in .NET 6+. Avviso
SYSLIB0016 Usare gli overload Graphics.GetContextInfo che accettano argomenti per prestazioni migliori e un minor numero di allocazioni. Avviso
SYSLIB0017 La firma con nome sicuro non è supportata e genera PlatformNotSupportedException. Avviso
SYSLIB0018 Il caricamento con solo reflection non è supportato e genera PlatformNotSupportedException. Avviso
SYSLIB0019 I membri di System.Runtime.InteropServices.RuntimeEnvironmentSystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid) e GetRuntimeInterfaceAsObject(Guid, Guid) non sono più supportati e generano PlatformNotSupportedException. Avviso
SYSLIB0020 JsonSerializerOptions.IgnoreNullValues è obsoleto. Per ignorare i valori Null durante la serializzazione, impostare DefaultIgnoreCondition su JsonIgnoreCondition.WhenWritingNull. Avviso
SYSLIB0021 I tipi crittografici derivati sono obsoleti. Usare invece il metodo Create sul tipo di base. Avviso
SYSLIB0022 I tipi Rijndael e RijndaelManaged sono obsoleti. Utilizzare invece Aes. Avviso
SYSLIB0023 RNGCryptoServiceProvider è obsoleto. Per generare un numero casuale, usare invece uno dei metodi statici RandomNumberGenerator. Avviso
SYSLIB0024 La creazione e lo scaricamento di AppDomains non sono supportati e generano un'eccezione. Avviso
SYSLIB0025 SuppressIldasmAttribute non ha alcun effetto in .NET 6+. Avviso
SYSLIB0026 X509Certificate e X509Certificate2 non sono modificabili. Usare il costruttore appropriato per creare un nuovo certificato. Avviso
SYSLIB0027 PublicKey.Key è obsoleto. Usare il metodo appropriato per ottenere la chiave pubblica, ad esempio GetRSAPublicKey(). Avviso
SYSLIB0028 X509Certificate2.PrivateKey è obsoleto. Usare il metodo appropriato per ottenere la chiave privata, ad esempio RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), o usare il metodo X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) per creare una nuova istanza con una chiave privata. Avviso
SYSLIB0029 ProduceLegacyHmacValues è obsoleto. La produzione di valori HMAC legacy non è più supportata. Avviso
SYSLIB0030 HMACSHA1 usa sempre l'implementazione dell'algoritmo fornita dalla piattaforma. Usare un costruttore senza il parametro useManagedSha1. Avviso
SYSLIB0031 CryptoConfig.EncodeOID(String) è obsoleto. Usare la funzionalità ASN.1 fornita in System.Formats.Asn1. Avviso
SYSLIB0032 Il ripristino da eccezioni di stato del processo danneggiato non è supportato. HandleProcessCorruptedStateExceptionsAttribute viene ignorato. Avviso
SYSLIB0033 Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) è obsoleto e non è supportato. Utilizzare invece PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]). Avviso
SYSLIB0034 CmsSigner(CspParameters) è obsoleto. Usare invece un costruttore alternativo. Avviso
SYSLIB0035 SignerInfo.ComputeCounterSignature() è obsoleto. Utilizzare invece l'overload che accetta CmsSigner. Avviso

Versione di introduzione

.NET 6

  • Seguire le indicazioni specifiche fornite per ogni ID di diagnostica usando il collegamento URL fornito nell'avviso.

  • Non è possibile eliminare avvisi o errori per questi elementi obsoleti usando l'ID di diagnostica standard per i tipi o i membri obsoleti. Usare invece il valore ID di diagnostica SYSLIBxxxx personalizzato.

API interessate

SYSLIB0013

SYSLIB0014

SYSLIB0015

SYSLIB0016

SYSLIB0017

SYSLIB0018

SYSLIB0019

SYSLIB0020

SYSLIB0021

SYSLIB0022

SYSLIB0023

SYSLIB0024

SYSLIB0025

SYSLIB0026

SYSLIB0027

SYSLIB0028

SYSLIB0029

SYSLIB0030

SYSLIB0031

SYSLIB0032

SYSLIB0033

SYSLIB0034

SYSLIB0035

Vedi anche