SYSLIB0042: FromXmlString e ToXmlString em tipos ECC estão obsoletos
Os métodos FromXmlString
e ToXmlString
que estão em tipos ECC (criptografia de curva elíptica) estão obsoletos a partir do .NET 7. Seu uso em códigos gera o aviso SYSLIB0042
em tempo de compilação. Eles nunca foram implementados e sempre geraram uma exceção PlatformNotSupportedException. A obsolescência afeta os seguintes métodos:
- ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- ECDiffieHellmanCngPublicKey.FromXmlString(String)
- ECDiffieHellmanCngPublicKey.ToXmlString()
- ECDiffieHellmanPublicKey.ToXmlString()
- ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- ECDsaCng.ToXmlString(ECKeyXmlFormat)
Solução alternativa
Use um formato de dados padrão para trocar chaves de EC (curva elíptica).
Em vez de ToXmlString
, use ExportSubjectPublicKeyInfo
ou ExportPkcs8PrivateKey
, conforme sua preferência pela chave pública ou privada.
Em vez de FromXmlString
, use ImportSubjectPublicKeyInfo
ou ImportPkcs8PrivateKey
, conforme sua preferência pela importação de chave pública ou privada.
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 SYSLIB0042
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0042
Para suprimir todos os avisos SYSLIB0042
no projeto, adicione uma propriedade <NoWarn>
ao arquivo de projeto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0042</NoWarn>
</PropertyGroup>
</Project>
Para obter mais informações, confira Suprimir avisos.