SYSLIB0042: FromXmlString y ToXmlString en tipos ECC están obsoletos
Los métodos FromXmlString
y ToXmlString
que se encuentran en tipos de criptografía de curva elíptica (ECC) están obsoletos, a partir de .NET 7. Su empleo en el código genera una advertencia SYSLIB0042
en tiempo de compilación. Nunca se implementaron y siempre han lanzado una excepción PlatformNotSupportedException. La obsolescencia afecta a los métodos siguientes:
- ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- ECDiffieHellmanCngPublicKey.FromXmlString(String)
- ECDiffieHellmanCngPublicKey.ToXmlString()
- ECDiffieHellmanPublicKey.ToXmlString()
- ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- ECDsaCng.ToXmlString(ECKeyXmlFormat)
Solución alternativa
Use un formato de datos estándar para intercambiar claves de curva elíptica (EC).
En lugar de ToXmlString
, use ExportSubjectPublicKeyInfo
o ExportPkcs8PrivateKey
en función de si desea la clave pública o privada.
En lugar de FromXmlString
, use ImportSubjectPublicKeyInfo
o ImportPkcs8PrivateKey
en función de si desea importar una clave pública o privada.
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 SYSLIB0042
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0042
Para suprimir todas las advertencias SYSLIB0042
del proyecto, agregue una propiedad <NoWarn>
al archivo del proyecto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0042</NoWarn>
</PropertyGroup>
</Project>
Para obtener más información, vea Suprimir advertencias.