SYSLIB0043: ECDiffieHellmanPublicKey.ToByteArray устарел

Следующие методы устарели, начиная с .NET 7. При их использовании во время компиляции создается предупреждение SYSLIB0043.

Метод ECDiffieHellmanPublicKey.ToByteArray() не имеет подразумеваемого формата файла. Кроме того, для встроенных реализаций он вызывается PlatformNotSupportedException во всех операционных системах, отличных от Windows. Так как ECDiffieHellmanPublicKey также имеется стандартный экспорт формата (с помощью ExportSubjectPublicKeyInfo() метода), старый элемент устарел.

Обходное решение

Если вы экспортируете значение открытого ключа, используйте ExportSubjectPublicKeyInfo() этот метод.

Для новых производных типов (или существующих производных типов, которые в настоящее время не вызывают конструктор), не вызывайте ECDiffieHellmanPublicKey(Byte[]) защищенный ECDiffieHellmanPublicKey(Byte[]) конструктор и переопределяйте ToByteArray() исключение или примите поведение по умолчанию для возврата пустого массива.

Для существующих производных типов, которые уже вызывают защищенный ECDiffieHellmanPublicKey(Byte[]) конструктор, продолжайте вызывать конструктор и подавлять SYSLIB0043 предупреждение.

Отключение предупреждений

Если необходимо использовать устаревшие API, вы можете отключить предупреждение в коде или в файле проекта.

Чтобы отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить предупреждение.

// Disable the warning.
#pragma warning disable SYSLIB0043

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

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

Чтобы отключить все SYSLIB0043 предупреждения в проекте, добавьте <NoWarn> свойство в файл проекта.

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

Дополнительные сведения см. в разделе Отключение предупреждений.