C#中类的序列化和反序列化
说明:本文演示将类序列化后写入记事本并从记事本读取反序列化为对象
1.首先创建一个类,同时类必须标识为Serializable,如下:
[Serializable] public class Region { public String _id { get; set; } public String region_id { get; set; } public String region_name { get; set; } public String parent_region_id { get; set; } }
2.序列化代码如下
//定义对象 Region region = new Region() { region_name = "ABCD" }; byte[] bytes; //序列化并写入内存流 using (MemoryStream ms = new MemoryStream()) { IFormatter formatter = new BinaryFormatter(); //序列化 formatter.Serialize(ms, region); bytes=ms.GetBuffer(); } //将内存流写入文件 FileStream fs = new FileStream("aa.txt", FileMode.OpenOrCreate); fs.Write(bytes, 0, bytes.Length); fs.Close();
3.反序列化代码如下
//将文件读取为文件流并写入byte数组 FileStream fs = new FileStream("aa.txt", FileMode.OpenOrCreate); var length=Convert.ToInt32(fs.Length); byte[] bytes = new byte[length]; fs.Read(bytes, 0, length); //将byte数组写入内存流 using (MemoryStream ms = new MemoryStream(bytes)) { IFormatter formatter = new BinaryFormatter(); //反序列化后强制转换 Region region = (Region)formatter.Deserialize(ms); Console.WriteLine(region.region_name); }
说明:经本人测试没有任何问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗