.NET序列化和反序列化

来源:互联网 发布:书法字典软件下载 编辑:程序博客网 时间:2024/04/26 06:08
实践是检验真理的唯一标准,看下面的代码:
//序列化和反序列化的测试
//构造测试数据,一个DataTable
System.Data.DataTable dt = new DataTable();
dt.Columns.Add(
"Id",System.Type.GetType("System.Int32"));
dt.Columns.Add(
"Name",System.Type.GetType("System.String"));

DataRow dr1 
= dt.NewRow();
dr1[
"Id"= 1;
dr1[
"Name"= "atao";
dt.Rows.Add(dr1);

DataRow dr2 
= dt.NewRow();
dr2[
"Id"= 2;
dr2[
"Name"= "tommy";
dt.Rows.Add(dr2);

//序列化
IFormatter formatter = new SoapFormatter();
System.IO.FileStream fs 
= new System.IO.FileStream("d:/test.xml",
                                                                             System.IO.FileMode.Create,
                                                                             System.IO.FileAccess.Write,
                                                                             System.IO.FileShare.None);
formatter.Serialize(fs,dt);
fs.Close();


//反序列化
IFormatter formatter_d = new  SoapFormatter();
System.IO.FileStream fs_d 
= new System.IO.FileStream("d:/test.xml",
                                                                                 System.IO.FileMode.Open,
                                                                                 System.IO.FileAccess.Read,
                                                                                 System.IO.FileShare.None);

DataTable dtt 
= (DataTable)formatter_d.Deserialize(fs_d);

this.DataGrid1.DataSource = dtt.DefaultView;
this.DataGrid1.DataBind();
//_________________________________________________________________

要更换序列化方式,只需把formatter更换就可以了。比如:IFormatter formatter_d = new  BinaryFormatter();
原创粉丝点击