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 AssemblyName HashAlgorithm, 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.
Azione consigliata
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
- System.Net.Security.EncryptionPolicy.AllowNoEncryption
- System.Net.Security.EncryptionPolicy.NoEncryption
SYSLIB0041
- Rfc2898DeriveBytes(String, Byte[])
- Rfc2898DeriveBytes(String, Int32)
- Rfc2898DeriveBytes(Byte[], Byte[], Int32)
- Rfc2898DeriveBytes(String, Byte[], Int32)
- Rfc2898DeriveBytes(String, Int32, Int32)
SYSLIB0042
- System.Security.Cryptography.ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- System.Security.Cryptography.ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- System.Security.Cryptography.ECDiffieHellmanCngPublicKey.FromXmlString(String)
- System.Security.Cryptography.ECDiffieHellmanCngPublicKey.ToXmlString()
- System.Security.Cryptography.ECDiffieHellmanPublicKey.ToXmlString()
- System.Security.Cryptography.ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- System.Security.Cryptography.ECDsaCng.ToXmlString(ECKeyXmlFormat)
SYSLIB0043
- System.Security.Cryptography.ECDiffieHellmanPublicKey.ToByteArray()
- ECDiffieHellmanPublicKey(Byte[])
SYSLIB0045
- System.Security.Cryptography.Aes.Create(String)
- System.Security.Cryptography.AsymmetricAlgorithm.Create(String)
- System.Security.Cryptography.DES.Create(String)
- System.Security.Cryptography.ECDiffieHellman.Create(String)
- System.Security.Cryptography.ECDsa.Create(String)
- System.Security.Cryptography.HashAlgorithm.Create(String)
- System.Security.Cryptography.KeyedHashAlgorithm.Create(String)
- System.Security.Cryptography.RandomNumberGenerator.Create(String)
- System.Security.Cryptography.RC2.Create(String)
- System.Security.Cryptography.Rijndael.Create(String)
- System.Security.Cryptography.RSA.Create(String)
- System.Security.Cryptography.SHA1.Create(String)
- System.Security.Cryptography.SHA256.Create(String)
- System.Security.Cryptography.SHA384.Create(String)
- System.Security.Cryptography.SHA512.Create(String)
- System.Security.Cryptography.SymmetricAlgorithm.Create(String)
- System.Security.Cryptography.TripleDES.Create(String)