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.
- System.Exception.SerializeObjectState
- BinaryFormatter.Serialize
- BinaryFormatter.Deserialize
- Formatter.Serialize(Stream, Object)
- Formatter.Deserialize(Stream)
- IFormatter.Serialize(Stream, Object)
- IFormatter.Deserialize(Stream)
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:
- System.Runtime.Serialization.Formatter
- System.Runtime.Serialization.IFormatter
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
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
- Resolución de errores de obsolescencia y deshabilitación de BinaryFormatter
- Los métodos de serialización BinaryFormatter están obsoletos y se prohíben en las aplicaciones ASP.NET (.NET 5)
- Las API de serialización BinaryFormatter producen errores del compilador (.NET 7)
- BinaryFormatter deshabilitado en la mayoría de los tipos de proyecto (.NET 8)