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. Su uso en el código genera una advertencia o un error SYSLIB0011 en tiempo de compilación.

A partir de .NET 8, BinaryFormatter.Serialize y BinaryFormatter.Deserialize lanzan una excepción 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 usa BinaryFormatter, debe migrar debido a sus errores de seguridad y confiabilidad. Para obtener más información, consulte Riesgos de deserialización durante el uso de BinaryFormatter y tipos relacionados y Alternativas preferidas.

Supresión de una advertencia

Si tiene que seguir usando las API obsoletas, puede suprimir la advertencia o el error 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 SYSLIB0011

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

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

Para suprimir todas las advertencias SYSLIB0011 del proyecto, agregue una propiedad <NoWarn> 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.

Vea también