(转)C#序列化和反序列化小例子

  网友关于序列化和反序列化的总结:

  ①序列化基本是指把一个对象保存到文件或流中,比如可以把文件序列化以保存到Xml中,或一个磁盘文件中
  ②序列化以某种存储形式使自定义对象持久化;
  ③将对象从一个地方传递到另一个地方。
  ④将类的值转化为一个一般的(即连续的)字节流,然后就可以将该流写到磁盘文件或任何其他流化目标上。
  ⑥序列是指将对象的实例状态存储到存储媒体的过程。 在此过程中,先将对象的公共字段以及类的名称(包括类的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。
  ⑦用处非常大,用于数据传输,对象存贮等。

  来源:http://hi.baidu.com/jiang_yy_jiang/item/ecf949f6e5e1eeda6325d2a3

  网友的小例子:

  命名空间:System.IO; System.Runtime.Serialization.Formatters.Binary;

  测试环境:VS2010

  1 、给类加上[Serializable]属性 表示这个类是可以序列化
  [Serializable]
  public class Userinfo
  {
    public string uname { get; set; }
    public string upass {get;set;}
    public int IsSave { get; set; }
  }

  2、将对象序列化到文件中代码

  FileStream fs = new FileStream(@"D:serializeDem.dat", FileMode.Create);
  Userinfo model = new Userinfo() { uname= "admin",upass="admin" IsSave = 1 };
  BinaryFormatter bf = new BinaryFormatter();
  bf.Serialize(fs, model);
  fs.Close();

  3、从文件反序列化为对象

  FileStream fs = new FileStream(@"D:serializeDem.dat", FileMode.Open);
  BinaryFormatter bf = new BinaryFormatter();
  Userinfo model = bf.Deserialize(fs) as Userinfo;

  来源:http://www.2cto.com/kf/201206/134122.html

原文地址:https://www.cnblogs.com/hhhh2010/p/3613380.html