SYSLIB0043 : ECDiffieHellmanPublicKey.ToByteArray est obsolète

Les méthodes suivantes sont obsolètes à compter de .NET 7. Leur utilisation dans le code génère un avertissement SYSLIB0043 au moment de la compilation.

La méthode ECDiffieHellmanPublicKey.ToByteArray() n’a pas de format de fichier implicite. En outre, pour les implémentations intégrées, elle lève une PlatformNotSupportedException sur tous les systèmes d’exploitation non-Windows. Comme ECDiffieHellmanPublicKey a aussi un format d’exportation standard (via la méthode ExportSubjectPublicKeyInfo()), l’ancien membre a été rendu obsolète.

Solution de contournement

Si vous exportez la valeur de la clé publique, utilisez à la place la méthode ExportSubjectPublicKeyInfo().

Pour les nouveaux types dérivés (ou les types dérivés existants qui n’appellent actuellement pas le constructeur ECDiffieHellmanPublicKey(Byte[])), n’appelez pas le constructeur protégé ECDiffieHellmanPublicKey(Byte[]), et remplacez ToByteArray() pour lever une exception ou acceptez le comportement par défaut, qui est de retourner un tableau vide.

Pour les types dérivés existants qui appellent déjà le constructeur protégé ECDiffieHellmanPublicKey(Byte[]), continuez à appeler le constructeur et supprimez l’avertissement SYSLIB0043 .

Supprimer un avertissement

Si vous devez utiliser les API obsolètes, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.

Pour supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactiver l’avertissement.

// Disable the warning.
#pragma warning disable SYSLIB0043

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

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

Pour supprimer tous les avertissements SYSLIB0043 dans votre projet, ajoutez une propriété <NoWarn> à votre fichier projet.

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

Pour plus d’informations, consultez Supprimer des avertissements.