.net web service 将返回结果DataSet转化为byte[]并压缩是否会影响其平台通用性

inetfuture 2010-08-15 05:51:04

/// <summary>
/// 将DataSet格式化成字节数组byte[],并且已经经过压缩
/// </summary>
/// <param name="dsOriginal">DataSet对象</param>
/// <returns>字节数组</returns>
public static byte[] GetBinaryFormatDataCompress(DataSet dsOriginal)
{
byte[] binaryDataResult = null;
MemoryStream memStream = new MemoryStream();
IFormatter brFormatter = new BinaryFormatter();
dsOriginal.RemotingFormat = SerializationFormat.Binary;
brFormatter.Serialize(memStream, dsOriginal);
binaryDataResult = memStream.ToArray();
memStream.Close();
memStream.Dispose();
return Compress(binaryDataResult);
}



/// <summary>
/// 将字节数组反解压后序列化成DataSet对象
/// </summary>
/// <param name="binaryData">字节数组</param>
/// <returns>DataSet对象</returns>
public static DataSet RetrieveDataSetDecompress(byte[] binaryData)
{
DataSet dsOriginal = null;
MemoryStream memStream = new MemoryStream(Decompress(binaryData));
IFormatter brFormatter = new BinaryFormatter();
Object obj = brFormatter.Deserialize(memStream);
dsOriginal = (DataSet)obj;
return dsOriginal;
}



这样做可以压缩网路流量,只是不知会不会影响其他平台的客户端调用,请指教,谢谢!
...全文
114 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MarcuseXiao 2010-08-16
  • 打赏
  • 举报
回复
当然,如果返回byte[] 就不能用http/https协议,例如可以用tcp/ip协议
MarcuseXiao 2010-08-16
  • 打赏
  • 举报
回复
你用Web Service直接返回byte[] 不行吗?为什么要在DataSet和Byte[]间进行序列化与反序列化?
wuyq11 2010-08-15
  • 打赏
  • 举报
回复
传统的web service只支持XML
inetfuture 2010-08-15
  • 打赏
  • 举报
回复
顶起顶起顶起
inetfuture 2010-08-15
  • 打赏
  • 举报
回复
PS:web Service是给手机客户端用的,所以尽可能的压缩数据

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧