序列化可以分为:序列化为json(传输到客户端);序列化为二进制、序列化为xml文件(保存在服务器端,实现用户某些数据直接保存在服务器)。
一、json序列化。
用 System.Web.Script.Serialization.JavaScriptSerializer,可以把各自对象(类、类数组、数组等对象都序列化为json),把序列化的josn格式的数据实现异步输出到客户端,客户端可以对json数据进行解析,实现复杂数据传功能。
二、二进制序列化:把,dataset、类、类数组、数组、等各种对象以二进制序列化,其中可以保存类的方法、属性等。其保存的数据类型种类多,数据保存完善。数据相对保密。
利用 //IFormatter IF = new BinaryFormatter(); 和 //Stream strm = new FileStream()进行序列化。
//IFormatter IF = new BinaryFormatter();
//Stream strm = new FileStream(Server.MapPath(@"~/Serialier/myBin"), FileMode.Create, FileAccess.Write, FileShare.None);
//IF.Serialize(strm, pepole);
三、xml序列化:其只能保存类的公共属性,不能保持方法、私有属性。xml文件格式清晰。
主要利用: XmlSerializer Ser = new XmlSerializer(typeof(Pepole[])); 和 FileStream fs = new FileStream()进行序列化。
dataset序列化:
XmlSerializer Ser = new XmlSerializer(typeof(DataSet));
TextWriter writer = new StreamWriter(fliename);
Ser.Serialize(writer,ds);
writer.Close();
四、直接序列化dataset会使xml文件非常的复杂。可以先把dataset 的值赋到对应的类数组中,在序列化。实现dataset序列化后数据不赋值的问题。
其中对流的操作,用完后必须进行关闭。各种对象的反序列化必须进行类型转换。