序列化与反序列化 狼

序列化可以分为:序列化为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序列化后数据不赋值的问题。

其中对流的操作,用完后必须进行关闭。各种对象的反序列化必须进行类型转换。

原文地址:https://www.cnblogs.com/gowhy/p/1996524.html