Compartir a través de


SYSLIB0011: la serialización BinaryFormatter está obsoleta

Debido a vulnerabilidades de seguridad en BinaryFormatter, las siguientes API se marcaron como obsoletas en .NET 5. El uso de ellos en el código genera advertencia o error SYSLIB0011 en tiempo de compilación.

A partir de .NET 8, BinaryFormatter.Serialize y BinaryFormatter.Deserialize generen una NotSupportedException en tiempo de ejecución en la mayoría de los tipos de proyecto. Además, PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) está obsoleto como advertencia y las SIGUIENTES API están obsoletas como error:

Soluciones alternativas

Si está utilizando BinaryFormatter, debe migrar de él debido a sus fallos de seguridad y confiabilidad. Para obtener más información, consulte Riesgos de deserialización en el uso de BinaryFormatter y tipos relacionados yAlternativas preferidas.

Supresión de una advertencia

Si debe usar las API obsoletas, puede suprimir la advertencia o el error en el código o en el archivo del proyecto.

Para suprimir solo una infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la advertencia.

// Disable the warning.
#pragma warning disable SYSLIB0011

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

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

Para suprimir todas las SYSLIB0011 advertencias del proyecto, agregue una <NoWarn> propiedad al archivo del proyecto.

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

Para obtener más información, vea Suprimir advertencias.

Consulte también