在 C# 开发中,经常需要将对象保存到文件或通过网络传输。这时,二进制序列化就派上用场了。本文将带你从零开始,深入浅出地掌握 BinaryFormatter 的使用方法,即使是编程小白也能轻松上手!
BinaryFormatter 是 .NET Framework 中用于将对象图以二进制格式进行序列化和反序列化的类。它属于 System.Runtime.Serialization.Formatters.Binary 命名空间。
通过 C# BinaryFormatter,你可以把一个复杂的对象(包括其所有字段和引用的对象)转换成一串字节,然后保存到磁盘、数据库或通过网络发送。接收方再通过反序列化,还原出原始对象。
要让一个类支持二进制序列化,必须在其上添加 [Serializable] 特性。否则,运行时会抛出异常。
下面是一个完整的例子,演示如何使用 .NET 序列化教程中最基础的 BinaryFormatter 功能。
using System;[Serializable]public class Person{ public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } public override string ToString() { return $"Name: {Name}, Age: {Age}, Email: {Email}"; }} using System;using System.IO;using System.Runtime.Serialization.Formatters.Binary;class Program{ static void Main() { // 创建对象 var person = new Person { Name = "张三", Age = 30, Email = "zhangsan@example.com" }; // 序列化到文件 using (FileStream fs = new FileStream("person.dat", FileMode.Create)) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(fs, person); } Console.WriteLine("对象已成功序列化到 person.dat 文件。"); }} using System;using System.IO;using System.Runtime.Serialization.Formatters.Binary;class Program{ static void Main() { Person loadedPerson; // 从文件反序列化 using (FileStream fs = new FileStream("person.dat", FileMode.Open)) { BinaryFormatter formatter = new BinaryFormatter(); loadedPerson = (Person)formatter.Deserialize(fs); } Console.WriteLine("反序列化结果:"); Console.WriteLine(loadedPerson.ToString()); }} ⚠️ 重要提示:从 .NET 5 开始,BinaryFormatter 在某些平台(如 .NET Core 和 .NET 5+)中已被标记为过时,并且默认被禁用,因为它存在严重的安全风险(如反序列化漏洞)。微软官方建议使用更安全的替代方案,例如 System.Text.Json、Newtonsoft.Json 或 protobuf-net。
但在学习或维护旧版 .NET Framework 项目时,了解 C# 对象持久化 的经典方式仍然很有价值。
通过本教程,你已经掌握了如何使用 BinaryFormatter 实现 C# BinaryFormatter 二进制序列化的基本操作。虽然它在现代 .NET 开发中不再推荐使用,但理解其原理有助于你更好地掌握 .NET 序列化教程中的核心概念。
如果你正在开发新项目,请优先考虑 JSON 或其他安全的序列化方式。但对于遗留系统维护或考试学习,这份 C# 对象持久化 指南依然非常实用!
希望这篇教程对你有帮助!欢迎收藏并分享给更多 C# 初学者。
本文由主机测评网于2025-12-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122614.html