Compartilhar via


SYSLIB0043: ECDiffieHellmanPublicKey.ToByteArray está obsoleto

Os métodos a seguir são obsoletos, começando no .NET 7. Usar no código gerará o aviso SYSLIB0043 em tempo de compilação.

O método ECDiffieHellmanPublicKey.ToByteArray() não tem um formato de arquivo implícito. Além disso, para as implementações internas, gera PlatformNotSupportedException em todos os sistemas operacionais não Windows. Como ECDiffieHellmanPublicKey também tem uma exportação de formato padrão (por meio do método ExportSubjectPublicKeyInfo()), o membro mais antigo ficou obsoleto.

Solução alternativa

Se você estiver exportando o valor da chave pública, use o método ExportSubjectPublicKeyInfo().

Para novos tipos derivados (ou tipos derivados existentes que atualmente não chamam o construtorECDiffieHellmanPublicKey(Byte[])), não chame o construtor protegido ECDiffieHellmanPublicKey(Byte[]) e substitua ToByteArray() para gerar uma exceção, ou aceite o comportamento padrão de retornar uma matriz vazia.

Para tipos derivados existentes que já chamam o construtor protegido ECDiffieHellmanPublicKey(Byte[]) , continue chamando o construtor e suprima o aviso SYSLIB0043.

Suprimir um aviso

Se for necessário usar as APIs obsoletas, você poderá suprimir o aviso no código ou no arquivo de projeto.

Para suprimir apenas uma violação única, adicione as diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite o aviso.

// Disable the warning.
#pragma warning disable SYSLIB0043

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

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

Para suprimir todos os avisos SYSLIB0043 no projeto, adicione uma propriedade <NoWarn> ao arquivo de projeto.

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

Para obter mais informações, confira Suprimir avisos.