Share via


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.