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

Alcune API sono state contrassegnate come obsolete, a partire da .NET 7. 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 7 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à
SYSLIB0036 Regex.CompileToAssembly è obsoleto e non è supportato. Usare invece RegexGeneratorAttribute con il generatore di origini delle espressioni regolari. Avviso
SYSLIB0037 I membri di AssemblyNameHashAlgorithm, ProcessorArchitecture e VersionCompatibility sono obsoleti e non supportati. Avviso
SYSLIB0038 SerializationFormat.Binary è obsoleto e non deve essere usato. Avviso
SYSLIB0039 Le versioni 1.0 e 1.1 di TLS presentano vulnerabilità note e non sono consigliate. Usare invece una versione TLS più recente o usare SslProtocols.None per rinviare alle impostazioni predefinite del sistema operativo. Avviso
SYSLIB0040 EncryptionPolicy.NoEncryption e EncryptionPolicy.AllowNoEncryption riducono significativamente la sicurezza e non devono essere usati nel codice di produzione. Avviso
SYSLIB0041 L'algoritmo hash predefinito e i conteggi delle iterazioni nei costruttori Rfc2898DeriveBytes sono obsoleti e non sicuri. Usare un costruttore che accetta l'algoritmo hash e il numero di iterazioni. Avviso
SYSLIB0042 ToXmlString e FromXmlString non hanno implementazione per i tipi ECC (Elliptic Curve Cryptography) e sono obsoleti. Usare un formato di importazione ed esportazione standard, ad esempio ExportSubjectPublicKeyInfo o ImportSubjectPublicKeyInfo per le chiavi pubbliche e ExportPkcs8PrivateKey o ImportPkcs8PrivateKey per le chiavi private. Avviso
SYSLIB0043 ECDiffieHellmanPublicKey.ToByteArray() e il costruttore associato non hanno un'implementazione coerente e interoperabile in tutte le piattaforme. Utilizzare invece ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo(). Avviso
SYSLIB0044 AssemblyName.CodeBase e AssemblyName.EscapedCodeBase sono obsoleti. Avviso
SYSLIB0045 I metodi factory crittografici che accettano un nome di algoritmo sono obsoleti. Usare invece il metodo factory Create senza parametri nel tipo di algoritmo. Avviso
SYSLIB0047 XmlSecureResolver è obsoleto. Usare invece XmlResolver.ThrowingResolver per impedire la risoluzione delle risorse XML esterne. Avviso

Versione di introduzione

.NET 7

Tipo di modifica che causa un'interruzione

Queste API obsolete possono influire sulla compatibilità dell'origine.

  • 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

SYSLIB0036

SYSLIB0037

SYSLIB0038

SYSLIB0039

SYSLIB0040

SYSLIB0041

SYSLIB0042

SYSLIB0043

SYSLIB0045

SYSLIB0047

Vedi anche