用DataSetSurrogate加速WebService
?
原文:http://hi.baidu.com/flower21_%BF%EC%C0%D6/blog/item/b1002088da8d359da5c27265.html
DataSet里面存放的实际上就是一堆的xml,当然,光说xml的文件宽泛了,实际上是用Xml描述的DataTable, DataColumn,, DataSet。在没有动作以前,DataSet里面的东西都是XmlSchema,当我们在WebService里面调用的时候,那么一堆的XmlSchema带着数据,就一起在网络上传输了,这样拖家带口的,肯定就慢,而且还有不少的冗余信息。
至于分离,主要分离的是Schema和data,这样拆开来做,不仅减少了数据的冗余,而且提高了传输的效率,打成流的东西,想不快都难。谁叫网络上传输的都是0和1。
?
? ?? ? ?DataSet ds = GetUserListDateSet();
? ? ? ? ? ? DataSetSurrogate dss = new DataSetSurrogate(ds);
? ? ? ? ? ? //序列化
? ? ? ? ? ? BinaryFormatter ser = new BinaryFormatter();
? ? ? ? ? ? MemoryStream stream = new MemoryStream();
? ? ? ? ? ? ser.Serialize(stream, dss);