Share via


SYSLIB0043: ECDiffieHellmanPublicKey.ToByteArray è obsoleto

I metodi seguenti sono obsoleti, a partire da .NET 7. Il loro uso nel codice genera un avviso SYSLIB0043 in fase di compilazione.

Il metodo ECDiffieHellmanPublicKey.ToByteArray() non ha un formato di file implicito. Inoltre, per le implementazioni predefinite, genera PlatformNotSupportedException in tutti i sistemi operativi non Windows. Poiché ECDiffieHellmanPublicKey ha anche un'esportazione di formato standard (tramite il metodo ExportSubjectPublicKeyInfo()), il membro meno recente è obsoleto.

Soluzione alternativa

Se si esporta il valore della chiave pubblica, usare invece il metodo ExportSubjectPublicKeyInfo().

Per i nuovi tipi derivati (o i tipi derivati esistenti che attualmente non chiamano il costruttore ECDiffieHellmanPublicKey(Byte[])), non chiamare il costruttore ECDiffieHellmanPublicKey(Byte[]) protetto ed eseguire l'override di ToByteArray() per generare un'eccezione o accettare il comportamento predefinito della restituzione di una matrice vuota.

Per i tipi derivati esistenti che chiamano già il costruttore ECDiffieHellmanPublicKey(Byte[]) protetto, continuare a chiamare il costruttore ed eliminare l'avviso SYSLIB0043.

Eliminare un avviso

Se è necessario usare le API obsolete, è possibile eliminare l'avviso nel codice o nel file di progetto.

Per eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare l'avviso.

// Disable the warning.
#pragma warning disable SYSLIB0043

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

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

Per eliminare tutti gli avvisi SYSLIB0043 nel progetto, aggiungere una proprietà <NoWarn> al file di progetto.

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

Per altre informazioni, vedere Non visualizzare gli avvisi.