SYSLIB0042: FromXmlString och ToXmlString på ECC-typer är föråldrade
Metoderna FromXmlString
och ToXmlString
som finns på ecc-typer (elliptisk kurvkryptografi) är föråldrade, med början i .NET 7. Om du använder dem i kod genereras en varning SYSLIB0042
vid kompileringstillfället. De implementerades aldrig och kastade alltid ett PlatformNotSupportedException undantag. Obsoletionen påverkar följande metoder:
- ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- ECDiffieHellmanCngPublicKey.FromXmlString(String)
- ECDiffieHellmanCngPublicKey.ToXmlString()
- ECDiffieHellmanPublicKey.ToXmlString()
- ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- ECDsaCng.ToXmlString(ECKeyXmlFormat)
Lösning
Använd ett standarddataformat för att utbyta elliptiska kurvnycklar (EC).
I stället ToXmlString
för använder ExportSubjectPublicKeyInfo
eller ExportPkcs8PrivateKey
beroende på om du vill ha den offentliga eller privata nyckeln.
I stället FromXmlString
för använder ImportSubjectPublicKeyInfo
eller ImportPkcs8PrivateKey
beroende på om du vill importera en offentlig eller privat nyckel.
Ignorera en varning
Om du måste använda föråldrade API:er kan du ignorera varningen i koden eller i projektfilen.
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan varningen.
// Disable the warning.
#pragma warning disable SYSLIB0042
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0042
Om du vill ignorera alla SYSLIB0042
varningar i projektet lägger du till en <NoWarn>
egenskap i projektfilen.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0042</NoWarn>
</PropertyGroup>
</Project>
Mer information finns i Utelämna varningar.