C#中怎样实现序列化和反序列化
2016-05-12 23:53
531 查看
我们想要将数据进行持久化的操作的话,也就是将数据写入到文件中,我们在C#中可以通过IO流来操作,同时也可以通过序列化来操作,本人是比较推荐使用序列化操作的
因为我们如果想要将一个对象持久化到文件中 如果我们使用IO流文件流操作的话可能就没办法实现了,但是我们用序列化的话就可以轻而易举的实现,并且当我们回拿到数据的
时候,我们拿到的也是一个对象,但是它保存到文件中是二进制文件
具体实现步骤如下
首先我们有一个实体对象 并且这个类是可支持序列化操作的 也就是挂载有[Serializable]标记
然后我们在Main函数中准备一个集合,并将上面创建的类作为集合的属性,为其添加数据,直接对该集合进行序列化操作和反序列化操作
以上我们就对集合数据完成了序列化和反序列化的操作了
因为我们如果想要将一个对象持久化到文件中 如果我们使用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<Peoson> list = new List<Peoson>(); 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<Peoson> list2= ReserializeMethod();//调用反序列化的方法 其方法返回值是一个List集合 foreach (Peoson item in list2)//遍历集合中的元素 { item.say(); } Console.ReadKey(); } //序列化操作 public static void SerializeMethod(List<Peoson> list) { using (FileStream fs=new FileStream("序列化.btn",FileMode.Create)) { BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fs,list); Console.WriteLine("序列化成功!"); } } //反序列化操作 public static List<Peoson> ReserializeMethod() { using(FileStream fs=new FileStream("序列化.btn",FileMode.Open)){ BinaryFormatter bf = new BinaryFormatter(); List<Peoson> list = (List<Peoson>)bf.Deserialize(fs); return list; } } }
以上我们就对集合数据完成了序列化和反序列化的操作了
相关文章推荐
- C# 模拟跑马灯效果(2种)
- 简单易懂的解释c#的abstract和virtual的用法和区别
- C#中位、字节等知识
- C#三十四 常用开发的部分总结
- C#三十四 常用开发的部分总结
- C#三十四 常用开发的部分总结
- C#学习之逆波兰公式简单实现
- C#三十三 事务
- C#三十三 事务
- C#三十三 事务
- C#实现自动升级(附源码)
- C# 后台请求web服务方法
- c# webbrowser 设置cookie
- C# 单例模式的实现
- 让C#语言充当自身脚本!——.NET中的动态编译
- 使用C#写入并保存为*.txt和读取数据
- C#学习笔记之图片、字节数组、base64之间的转换
- C#窗体中,textbox中数据保存到txt文本中,从文本读取数据到textbox
- C#获取CPU编号
- C#分布式缓存Couchbase使用