Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
- 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 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:
- System.Runtime.Serialization.Formatter
- System.Runtime.Serialization.IFormatter
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
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
- Resolución de errores de obsolescencia y deshabilitación de BinaryFormatter
- Los métodos de serialización BinaryFormatter están obsoletos y prohibidos en aplicaciones de 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)