博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中怎样实现序列化和反序列化
阅读量:4597 次
发布时间:2019-06-09

本文共 2262 字,大约阅读时间需要 7 分钟。

我们想要将数据进行持久化的操作的话,也就是将数据写入到文件中,我们在C#中可以通过IO流来操作,同时也可以通过序列化来操作,本人是比较推荐使用序列化操作的

因为我们如果想要将一个对象持久化到文件中 如果我们使用IO流文件流操作的话可能就没办法实现了,但是我们用序列化的话就可以轻而易举的实现,并且当我们回拿到数据的

时候,我们拿到的也是一个对象,但是它保存到文件中是二进制文件

具体实现步骤如下

首先我们有一个实体对象  并且这个类是可支持序列化操作的  也就是挂载有[Serializable]标记

//说明该类可以被序列化    [Serializable]   public class Peoson    {        private int age;        private string name;        public int Age        {            get { return age; }            set { age = value; }        }        public string Name        {            get { return name; }            set { name = value; }        }        public Peoson() { }        public Peoson(string name,int age) {            this.age = age;            this.name = name;        }        public void say() {            Console.WriteLine("名字:{0},年龄{1}",name,age);        }    }

然后我们在Main函数中准备一个集合,并将上面创建的类作为集合的属性,为其添加数据,直接对该集合进行序列化操作和反序列化操作

static void Main(string[] args)        {            //准备集合并为其添加数据            List
list = new List
(); Peoson p1 = new Peoson("小黄", 18); Peoson p2 = new Peoson("小白", 28); Peoson p3 = new Peoson("小青", 15); list.Add(p1); list.Add(p2); list.Add(p3); //序列化 SerializeMethod(list); //反序列化 List
list2= ReserializeMethod();//调用反序列化的方法 其方法返回值是一个List集合 foreach (Peoson item in list2)//遍历集合中的元素 { item.say(); } Console.ReadKey(); } //序列化操作 public static void SerializeMethod(List
list) { using (FileStream fs=new FileStream("序列化.btn",FileMode.Create)) { BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fs,list); Console.WriteLine("序列化成功!"); } } //反序列化操作 public static List
ReserializeMethod() { using(FileStream fs=new FileStream("序列化.btn",FileMode.Open)){ BinaryFormatter bf = new BinaryFormatter(); List
list = (List
)bf.Deserialize(fs); return list; } } }

 

 以上我们就对集合数据完成了序列化和反序列化的操作了

 

 

转载于:https://www.cnblogs.com/liujiayun/p/5487909.html

你可能感兴趣的文章
柔性数组-读《深度探索C++对象模型》有感
查看>>
rmdir 命令(转)
查看>>
生产者消费者
查看>>
Contos 安装Tomcat
查看>>
Python编程Day3—基本运算符、数据类型
查看>>
在Delphi中静态调用DLL 引用外部Dll External Dll 导入Dll
查看>>
How to get AutoCAD Mtext content
查看>>
程序员技术练级攻略
查看>>
Java开发微信公众号
查看>>
【C语言】给一组组数,仅仅有两个数仅仅出现了一次,其它全部数都是成对出现的,找出这两个数。...
查看>>
CAF(C++ actor framework)(序列化之复杂类,分析 还有自己不懂的细思恐极函数实现)(三)...
查看>>
18.5.19 自测
查看>>
决策树(Decision Trees)
查看>>
为什么Java字符串是不可变对象?
查看>>
最近挖的坑
查看>>
python-变量
查看>>
MD5-总结
查看>>
Linq to Entity 时间差作为筛选条件产生的问题
查看>>
JS常用类型事件
查看>>
Python:笔记(2)——函数与模块
查看>>