Dans .NET 7, les méthodes BinaryFormatter.Serialize(Stream, Object) et BinaryFormatter.Deserialize(Stream) ont été marquées comme obsolètes et ont généré une erreur au moment de la compilation. Toutefois, si votre application a supprimé l’obsolescence, elle peut toujours appeler les méthodes et elles fonctionnent correctement dans la plupart des types de projets (à l’exception d’ASP.NET, WASM et MAUI). Par exemple, les API ont fonctionné correctement dans une application console.
Nouveau comportement
À compter de .NET 8, les méthodes affectées lèvent un NotSupportedException au moment de l’exécution sur tous les types de projet, à l’exception de Windows Forms et WPF. Les API restent obsolètes (en tant qu’erreur) pour tous les types de projets, y compris Windows Forms et WPF.
La meilleure solution consiste à cesser d’utiliser BinaryFormatter en raison de ses défauts de sécurité et de fiabilité. Pour obtenir plus d’informations, consultez les Alternatives préférées.
Si vous devez continuer à utiliser BinaryFormatter, vous pouvez définir un commutateur de compatibilité dans votre fichier projet pour réactiver la fonctionnalité BinaryFormatter. Pour plus d’informations, consultez la section Action recommandée de la notification de changement cassant .NET 7. Ce commutateur de compatibilité continue d’être respecté dans .NET 8.
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Les applications micro-services, en raison de leur nature distribuée, peuvent être difficiles à sécuriser. Dans ce module, vous allez apprendre à classifier des données sensibles dans une application native cloud, à réactifier les données sensibles dans les fichiers journaux et à générer des rapports de conformité pour une application native cloud.
Découvrez le changement cassant de .NET 5 dans les bibliothèques .NET principales, où la sérialisation et la désérialisation des méthodes sur BinaryFormatter, Formatter et IFormatter sont obsolètes.
Découvrez le changement cassant de .NET 7 dans les bibliothèques .NET principales, où la sérialisation et la désérialisation des méthodes sur BinaryFormatter, Formatter et IFormatter sont obsolètes en tant qu’erreurs.
Découvrez le changement cassant de .NET 7 pour les bibliothèques .NET de base, où la sérialisation et la désérialisation binaires des objets DataSet et DataTable sont obsolètes.
Découvrez les vulnérabilités de sécurité de BinaryFormatter, SoapFormatter, NetDataContractSerializer, LosFormatter et ObjectStateFormatter. L’article recommande des alternatives plus sûres.