码迷,mamicode.com
首页 > 其他好文 > 详细

序列化和反序列化

时间:2015-09-28 11:42:27      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

一、介绍

    1.序列化和反序列化,我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,

       反序列化就是在适当的时候把这个文件再转化成原来的对象使用。

    2.把对象转换为字节序列的过程称为对象的序列化。
   把字节序列恢复为对象的过程称为对象的反序列化。

    3.序列化和反序列化的作用 

  1>在进程下次启动时读取上次保存的对象的信息 2>、在不同的AppDomain或进程之间传递数据 3>、在分布式应用系统中传递数据 

  4.常见的序列化方法

 1>、BinaryFormatter  2>、SoapFormatter  3>、XML序列化

  5.BinaryFormatter  的用法

//BinaryFormatter将对象序列化到文件中
List<string> inputList = new List<string>() 
using (FileStream fsWriter = new FileStream(@"gz168168.tmp",FileMode.Create,FileAccess.Write))//存入的文件数据(序列化对象)
{
       BinaryFormatter bf = new BinaryFormatter();//
       //序列化
       bf.Serialize(fsWriter, inputList);
}

//BinaryFormatter将文件中的数据反序列化出来
List<string> outputList = new List<string>();
using (FileStream fsReader = new FileStream(@"gz168168.tmp",FileMode.Open,FileAccess.Read))
{
       BinaryFormatter bf = new BinaryFormatter();
       //反序列化
       outputList = (List<string>)bf.Deserialize(fsReader);
}

    6.MXL序列化的用法

List<string> inputList = new List<string>() 
using (FileStream fsWriter = new FileStream(@"test.xml",FileMode.Create,FileAccess.Write))//存入的文件数据(序列化对象)
{
      XmlSerializer xs = new XmlSerializer(typeof(List<string>));
      xs.Serialize(fsWriter, inputList);
}

//从test.xml文件中反序列化出来
List<string> outputList = new List<string>();
using (FileStream fsReader = new FileStream(@"test.xml",FileMode.Open,FileAccess.Read))
{
     XmlSerializer xs = new XmlSerializer(typeof(List<string>));
     outputList = xs.Deserialize(fsReader) as List<string>;
}

   7.序列化的优点

二进制序列化的优点: 
  1. 所有的类成员(包括只读的)都可以被序列化;
  2. 性能非常好。
XML序列化的优点:
  1. 互操作性好;
  2. 不需要严格的二进制依赖;
  3. 可读性强

 

 8.总结

序列化      
   1.得到一个存储对象的类型
  2.创建一个写入文件流
  3.定义要序列化的类型
  4.调用序列化方法
反序列化:
  1.定义一个装载对象的类型
  2.创建一个读出文件流
  3.定义要反序列化的类型
  4.调用反序列化方法

  

 

序列化和反序列化

标签:

原文地址:http://www.cnblogs.com/fanna/p/4843469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!