吴佳鑫的个人专栏

当日事当日毕,没有任何借口

导航

2012年2月14日

对象序列化(六):应用实例->程序退出时保存状态

摘要: 应用序列化技术的一个典型开发场景就是保存应用程序的当前状态,它允许用户暂时中断当前的工作,关闭程序退出,下次重新启动程序时自动恢复上次的工作状态。示例:保存窗体颜色和位置的对象:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing;namespace SaveFormStatus{ [Serializable] public class FormStatus { public Color BackgroundCo... 阅读全文

posted @ 2012-02-14 23:54 _eagle 阅读(440) 评论(0) 推荐(0) 编辑

对象序列化(五):应用实例->大批量复制对象

摘要: 本日记介绍序列化技术在实际开发中的用武之地。在了解了对象序列化与反序列化的方法之后,自然想到可以使用它来实现对象复制。当序列化技术用于对象复制时,我们不将其序列化到文件中,而是将其序列化到内存流中,通过反序列化即可“批量克隆”大量的对象。示例:using System;using System.Collections.Generic;using System.Text;using System.Runtime.Serialization.Formatters.Binary;using System.Runtime.Serialization;using System.IO;namespace 阅读全文

posted @ 2012-02-14 23:50 _eagle 阅读(697) 评论(0) 推荐(0) 编辑

对象序列化(四):多对象序列化

摘要: 前几个日记都是介绍单个对象序列化的,其实,可以在序列化过程中向流连续写入多个对象。继续前面的示例,如果是多个学生对象//学生对象private List<CollegeStudent> stus = new List<CollegeStudent>();需要保存数据时,将集合中的对象序列化到文件中://将学生清单序列化到文件中 private void SerializeStudentList(String FileName, List<CollegeStudent> stus) { using (FileStream writer = new FileSt 阅读全文

posted @ 2012-02-14 23:36 _eagle 阅读(518) 评论(0) 推荐(0) 编辑

对象序列化(三):控制序列化过程

摘要: 接着上一节的内容,有时候我们在对象中,并不是所有的字段需要序列化。示例:以下是这个窗体需要用到的实体类using System;using System.Collections.Generic;using System.Text;using System.Runtime.Serialization;using System.Collections;namespace MutliObjectSerialization2{ [Serializable] class CollegeStudent:IDeserializationCallback { public St... 阅读全文

posted @ 2012-02-14 23:18 _eagle 阅读(457) 评论(0) 推荐(0) 编辑

对象序列化(二):对象的序列化与反序列化

摘要: .NET框架提供了三种序列化的方式:1、是使用BinaryFormatter进行序列化;2、使用SoapFormatter进行序列化;3、使用XmlSerializer进行序列化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储;第三种其实和第二种差不多也是XML的格式存储,只不过比第二种的XML格式要简化很多(去掉了SOAP特有的额外信息)。简单的说,第一种是将对象的数据看成是二进制的数据而直接写入流中,称为“二进制序列化”,第二种和第三种是将对象数据用XML方式表示之后再经纯文本的方式写入流中,称为“XML序列化”。.net提供了两种“数据格 阅读全文

posted @ 2012-02-14 22:36 _eagle 阅读(788) 评论(0) 推荐(0) 编辑