SYSLIB0043: ECDiffieHellmanPublicKey.ToByteArray está obsoleto

Los métodos siguientes están obsoletos a partir de .NET 7. Su empleo en el código genera una advertencia SYSLIB0043 en tiempo de compilación.

El método ECDiffieHellmanPublicKey.ToByteArray() no tiene un formato de archivo implícito. Además, para las implementaciones integradas, se genera la excepción PlatformNotSupportedException en todos los sistemas operativos que no son Windows. Puesto que ECDiffieHellmanPublicKey también tiene una exportación de formato estándar (a través del método ExportSubjectPublicKeyInfo()), el miembro anterior ha quedado obsoleto.

Solución alternativa

Si va a exportar el valor de la clave pública, use el método ExportSubjectPublicKeyInfo() en su lugar.

Para los nuevos tipos derivados (o los tipos derivados existentes que no llamen actualmente al constructor ECDiffieHellmanPublicKey(Byte[])) no llame al constructor protegido ECDiffieHellmanPublicKey(Byte[]), e invalide ToByteArray() para que se genere una excepción o acepte el comportamiento predeterminado de devolver una matriz vacía.

Para los tipos derivados existentes que ya llaman al constructor protegido ECDiffieHellmanPublicKey(Byte[]), continúe llamando al constructor y suprima la advertencia SYSLIB0043.

Supresión de una advertencia

Si tiene que seguir usando las API obsoletas, puede suprimir la advertencia en el código o en el archivo de proyecto.

Para suprimir solo una infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y luego volver a habilitar la advertencia.

// Disable the warning.
#pragma warning disable SYSLIB0043

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

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

Para suprimir todas las advertencias SYSLIB0043 del proyecto, agregue una propiedad <NoWarn> al archivo del proyecto.

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

Para obtener más información, vea Suprimir advertencias.