c# 序列化与反序列化

前言:
通过将一个实体类进行序列化,可以将实体类进行保存和传输。
反序列化,可以将一个保存的文件或者接收的文件,转换为一个实体类。


常见的方式:
一、 BinaryFormatter进行序列化
二、 SoapFormatter进行序列化
三、 XmlSerializer进行序列化

第一种 方式是将实体类中的属性 字段 序列化为一个二进制文件
第二种 第三种方法 是将实体类中的属性 字段 序列化为一个xml文件

以下将举例xml序列化的实现方式:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
/**//// ﹤summary﹥
/// ClassToSerialize 的摘要说明
/// ﹤/summary﹥
[Serializable]
public class tmpClass
{
public int keyId = 2;
public string setUserName = “姓名”;
[NonSerialized]
public string setOther = “其它信息”;
}

public void xiLieHua()
{
tmpClass c = new tmpClass();
FileStream fileStream =
new FileStream(“c:\\tmp.dat”, FileMode.Create);
BinaryFormatter b = new BinaryFormatter();
b.Serialize(fileStream, c);
fileStream.Close();
}
public void FanXiLieHua()
{
tmpClass c = new tmpClass();
c.setOther = “其它信息”;
FileStream fileStream =
new FileStream(“c:\\tmp.dat”,
FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryFormatter b = new BinaryFormatter();
c = b.Deserialize(fileStream) as ClassToSerialize;
Response.Write(c.setUserName);
Response.Write(c.setOther);
fileStream.Close();
}


常见应用:
例 : 我们需要制作一个系统常用设置,我们可以通过设置一个实体类,然后将实体类保存为xml或二进制文件,当需要读取系统设置时,
我们只需将xml 读取然后反序列化为一个类就可以得到我们所需的参数。