Sliverlight的客户端压解缩数据的问题

Xhunter 2012-10-09 11:49:03
WCF端用 DeflateStream 压缩 string(XML) 转给 Sliverlight 客户端

Sliverlight引用不了System.IO.Compression; 无法用DeflateStream 解压

找几个C#下压解缩的控件..Sliverlight端都引用不进程序.

想找个Sliverlight下能用的压解缩控件或算法.......大家给点思路,谢谢!
...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jv9 2012-10-15
  • 打赏
  • 举报
回复
个人经验来说,如果你使用了wcf service,可以考虑使用第三方序列化和反序列化类库,避免使用微软提供的xml serializer。推荐你看看protocal buffers作为你的序列化工具,是google推出一款类库,我使用该项目到一些商业项目中,反馈非常好。
  • 打赏
  • 举报
回复
如果你跟踪http通讯,当silvelright向服务器请求下载数据时,http.sys会在http消息头中声明Accept-Encoding;在http服务器端,实际上只要它支持压缩,并且在返回的消息的头部声明Content-Encoding,那么silverlight端就会得到已经自动解压缩后的数据了!
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
WCF端用 DeflateStream 压缩 string(XML) 转给 Sliverlight 客户端

Sliverlight引用不了System.IO.Compression; 无法用DeflateStream 解压

找几个C#下压解缩的控件..Sliverlight端都引用不进程序.

想找个Sliverlight下能用的压解缩控件或算法.......大家给点思路,谢谢!
[/Quote]

silverlight自己不进行解压缩,因为windows操作系统的http机制本身就支持解压缩,而silverlight是调用windows操作系统的http(HTTP.SYS)的。因此你根本不需要再silverlight写一行解压缩代码!

你唯一需要的,是在服务器端支持压缩。例如你的WCF服务器端,请使用微软现成的机制(可能仅仅是Attribute声明即可),而不要自己去“发明“什么压缩/解压缩”新机制。

我不使用WCF(因为它有大又慢又不好调试和扩展),也懒得给你找这个Attribute了。请自己查找一下。这个问题在编程上只需要一分钟搞定的事情,可能需要一两个小时去查找资料。但是不要浪费很多时间去发明自己的什么“压缩/解压缩”机制了!
Xhunter 2012-10-09
  • 打赏
  • 举报
回复
来人啊!
Xhunter 2012-10-09
  • 打赏
  • 举报
回复
阿大们,来啊

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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