SYSLIB0042: Typy ecC fromXmlString i ToXmlString są przestarzałe
FromXmlString
Metody iToXmlString
, które znajdują się w typach kryptograficznych krzywej eliptycznej (ECC), są przestarzałe, począwszy od platformy .NET 7. Użycie ich w kodzie generuje ostrzeżenie SYSLIB0042
w czasie kompilacji. Nigdy nie były implementowane i zawsze rzucały wyjątek PlatformNotSupportedException . Obsoletion ma wpływ na następujące metody:
- ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- ECDiffieHellmanCngPublicKey.FromXmlString(String)
- ECDiffieHellmanCngPublicKey.ToXmlString()
- ECDiffieHellmanPublicKey.ToXmlString()
- ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- ECDsaCng.ToXmlString(ECKeyXmlFormat)
Rozwiązanie
Użyj standardowego formatu danych do wymiany kluczy krzywej eliptycznej (EC).
ToXmlString
Zamiast , użyj ExportSubjectPublicKeyInfo
polecenia lub ExportPkcs8PrivateKey
w zależności od tego, czy chcesz mieć klucz publiczny, czy prywatny.
FromXmlString
Zamiast , użyj polecenia ImportSubjectPublicKeyInfo
lub ImportPkcs8PrivateKey
w zależności od tego, czy chcesz zaimportować klucz publiczny, czy prywatny.
Pomijanie ostrzeżenia
Jeśli musisz używać przestarzałych interfejsów API, możesz pominąć ostrzeżenie w kodzie lub w pliku projektu.
Aby pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć ostrzeżenie.
// Disable the warning.
#pragma warning disable SYSLIB0042
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0042
Aby pominąć wszystkie SYSLIB0042
ostrzeżenia w projekcie, dodaj <NoWarn>
właściwość do pliku projektu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0042</NoWarn>
</PropertyGroup>
</Project>
Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.