SYSLIB0042: FromXmlString e ToXmlString nei tipi ECC sono obsoleti
I metodi FromXmlString
e ToXmlString
su tipi ECC (elliptic curve cryptography) sono obsoleti a partire da .NET 7. Il loro uso nel codice genera un avviso SYSLIB0042
in fase di compilazione. Non sono mai stati implementati e hanno sempre generato un'eccezione PlatformNotSupportedException. L'obsolescenza influisce sui metodi seguenti:
- ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- ECDiffieHellmanCngPublicKey.FromXmlString(String)
- ECDiffieHellmanCngPublicKey.ToXmlString()
- ECDiffieHellmanPublicKey.ToXmlString()
- ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- ECDsaCng.ToXmlString(ECKeyXmlFormat)
Soluzione alternativa
Usare un formato dati standard per lo scambio di chiavi a curva ellittica (EC).
Anziché ToXmlString
, usare ExportSubjectPublicKeyInfo
o ExportPkcs8PrivateKey
, a seconda che si voglia o meno la chiave pubblica o privata.
Anziché FromXmlString
, usare ImportSubjectPublicKeyInfo
o ImportPkcs8PrivateKey
, a seconda che si voglia importare una chiave pubblica o privata.
Eliminare un avviso
Se è necessario usare le API obsolete, è possibile eliminare l'avviso nel codice o nel file di progetto.
Per eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare l'avviso.
// Disable the warning.
#pragma warning disable SYSLIB0042
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0042
Per eliminare tutti gli avvisi SYSLIB0042
nel progetto, aggiungere una proprietà <NoWarn>
al file di progetto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0042</NoWarn>
</PropertyGroup>
</Project>
Per altre informazioni, vedere Non visualizzare gli avvisi.