BinaryFormatter is Obsolete
Severity Code Description Project File Line Suppression State
Error SYSLIB0011 'BinaryFormatter.Deserialize(Stream)' is obsolete: 'BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.'
Use Xml or Json Serialization
Не используйте в коде BinaryFormatter. Рассмотрите возможность использования JsonSerializer или XmlSerializer вместо них. Дополнительные сведения см. в статье Руководство по безопасности BinaryFormatter.
Можно временно отключить появляющееся во время компиляции предупреждение об использовании BinaryFormatter (
SYSLIB0011
). Перед этим мы рекомендуем тщательно оценить риски для кода. Самый простой способ отключить предупреждения — обособить отдельные места вызова директивами#pragma
.C#// Now read the purchase order back from disk using (var readStream = new FileStream("myfile.bin", FileMode.Open)) { var formatter = new BinaryFormatter(); #pragma warning disable SYSLIB0011 return (PurchaseOrder)formatter.Deserialize(readStream); #pragma warning restore SYSLIB0011 }
Предупреждение можно также отключить в файле проекта.
XML<PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> <!-- Disable "BinaryFormatter is obsolete" warnings for entire project --> <NoWarn>$(NoWarn);SYSLIB0011</NoWarn> </PropertyGroup>
В этом случае предупреждение будет отключено во всех файлах с кодом в проекте. Подавление
SYSLIB0011
не приводит к отключению предупреждений, вызванных использованием других устаревших API.Чтобы продолжить использование BinaryFormatter в приложениях ASP.NET, можно повторно включить их в файле проекта. Но делать это настоятельно не рекомендуется. Дополнительные сведения см. в статье Руководство по безопасности BinaryFormatter.
XML<PropertyGroup> <TargetFramework>net5.0</TargetFramework> <!-- Warning: Setting the following switch is *NOT* recommended in web apps. --> <EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization> </PropertyGroup>
Комментариев нет:
Отправить комментарий