由于公司近期业务的需要,本要研究一些有关 XML WebServer下数据序列化及数据压缩的实现问题,现与大家分享一下,也希望大家勇于讨论,互相学习。由于要实现网络传输入,考虑到操作系统、网络性能等几方面的原因,就需要对数据实现序列化和数据压缩传输入。本人简单地实验了一下,如果在XML WebServer下直接使用DataSet传输入数据,就算实现压缩,也是非常具大的。最好的方法是自己定义好结构体或都类对象(当然在定义的时间要声明我可序列化的哟),进行序列化,然后再进行数据压缩;到了另外一端时选进行解压缩,然后再反序列化。通过这样的实现,从我的项目经验得到的结论是,大大地提高了数据传输的性能,尤其是对于数据量具大的数据传输入更是如此。本人已把数据对象序列化和反序列化、压缩和解压方法(引用的是开源插件,可以从网上http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx 下载)封装成一个完整的类中了,代码如文中所述,如有不懂不解之处希望各位一起讨论,也希望能听到更好的见解。
/**/
/*********************************************************************************************
* 文 件 名:ObjectBinaryFormate.cs
* 创 建 人:王峰
* 功能说明:实现对象序列化与反序列
* 创建日期:2006-12-25
* 单位名称:华域科技
* 版 本:1.0
* 更新说明:---------------------------------------------------------------------------------
* 修 改 人:王峰
* 日 期:2007-01-24
* 修改说明:实现数据的压缩
* -------------------------------------------------------------------------------------------
* 其它说明:无
***********************************************************************************************/
using System;
using System.IO;
using System.Data;
using System.Runtime.Serialization.Formatters.Binary;
// 此处需要进相关的网站下载相应的开源插件
using ICSharpCode.SharpZipLib.Zip.Compression;
namespace SmsClientApp
... {
/**//// <summary>
/// ObjectBinaryFormate 的摘要说明。
/// </summary>
public class ObjectBinaryFormate
...{
public ObjectBinaryFormate()
...{
}
/**/
* 文 件 名:ObjectBinaryFormate.cs
* 创 建 人:王峰
* 功能说明:实现对象序列化与反序列
* 创建日期:2006-12-25
* 单位名称:华域科技
* 版 本:1.0
* 更新说明:---------------------------------------------------------------------------------
* 修 改 人:王峰
* 日 期:2007-01-24
* 修改说明:实现数据的压缩
* -------------------------------------------------------------------------------------------
* 其它说明:无
***********************************************************************************************/
using System;
using System.IO;
using System.Data;
using System.Runtime.Serialization.Formatters.Binary;
// 此处需要进相关的网站下载相应的开源插件
using ICSharpCode.SharpZipLib.Zip.Compression;
namespace SmsClientApp
... {
/**//// <summary>
/// ObjectBinaryFormate 的摘要说明。
/// </summary>
public class ObjectBinaryFormate
...{
public ObjectBinaryFormate()
...{
}
/**/