SYSLIB0043: ECDiffieHellmanPublicKey.ToByteArray är föråldrad
Följande metoder är föråldrade, med början i .NET 7. Om du använder dem i kod genereras en varning SYSLIB0043
vid kompileringstillfället.
Metoden ECDiffieHellmanPublicKey.ToByteArray() har inget underförstått filformat. För de inbyggda implementeringarna utlöser PlatformNotSupportedException det även alla icke-Windows-operativsystem. Eftersom ECDiffieHellmanPublicKey även har en standardformatexport (via ExportSubjectPublicKeyInfo() metoden) har den äldre medlemmen blivit föråldrad.
Lösning
Om du exporterar värdet för den offentliga nyckeln använder du ExportSubjectPublicKeyInfo() metoden i stället.
För nya härledda typer (eller befintliga härledda typer som för närvarande inte anropar ECDiffieHellmanPublicKey(Byte[]) konstruktorn) ska du inte anropa den skyddade ECDiffieHellmanPublicKey(Byte[]) konstruktorn och antingen åsidosätta ToByteArray() för att utlösa ett undantag eller acceptera standardbeteendet att returnera en tom matris.
För befintliga härledda typer som redan anropar den skyddade ECDiffieHellmanPublicKey(Byte[]) konstruktorn fortsätter du att anropa konstruktorn och undertrycker varningen SYSLIB0043
.
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 SYSLIB0043
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0043
Om du vill ignorera alla SYSLIB0043
varningar i projektet lägger du till en <NoWarn>
egenskap i projektfilen.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0043</NoWarn>
</PropertyGroup>
</Project>
Mer information finns i Utelämna varningar.