Udostępnij za pośrednictwem


SYSLIB0043: ECDiffieHellmanPublicKey.ToByteArray jest przestarzałe

Następujące metody są przestarzałe, począwszy od platformy .NET 7. Użycie ich w kodzie generuje ostrzeżenie SYSLIB0043 w czasie kompilacji.

Metoda ECDiffieHellmanPublicKey.ToByteArray() nie ma dorozumianego formatu pliku. Ponadto w przypadku wbudowanych implementacji jest on zgłaszany PlatformNotSupportedException we wszystkich systemach operacyjnych innych niż Windows. Ponieważ ECDiffieHellmanPublicKey ma również standardowy eksport formatu (za pośrednictwem ExportSubjectPublicKeyInfo() metody), starszy element członkowski został przestarzały.

Rozwiązanie

Jeśli eksportujesz wartość klucza publicznego, użyj ExportSubjectPublicKeyInfo() metody .

W przypadku nowych typów pochodnych (lub istniejących typów pochodnych, które nie są obecnie wywoływane konstruktora), nie wywołuje ECDiffieHellmanPublicKey(Byte[]) chronionego ECDiffieHellmanPublicKey(Byte[]) konstruktora i przesłonięcia ToByteArray() w celu zgłoszenia wyjątku lub zaakceptuj domyślne zachowanie zwracania pustej tablicy.

W przypadku istniejących typów pochodnych, które już wywołają chroniony ECDiffieHellmanPublicKey(Byte[]) konstruktor, kontynuuj wywoływanie konstruktora i pomijanie SYSLIB0043 ostrzeżenia.

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 SYSLIB0043

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0043

Aby pominąć wszystkie SYSLIB0043 ostrzeżenia w projekcie, dodaj <NoWarn> właściwość do pliku projektu.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0043</NoWarn>
  </PropertyGroup>
</Project>

Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.