.net 2.0远程传输数据集的优化方法(续)
对数据集序列化和反序列化的方法进行了一下简单的封装,使其可以得到重用的效果.见下面的类DatFormatter.
通过GetBinaryFormatData方法可以转换数据集为二进制,在服务器端使用,转换数据集格式。发送,客户端接收,得到二进制格式数据,使用RetrieveDataSet方法,反序列化,得到数据集,进行客户端操作。通过这些简单的操作(序列化和反序列化,将数据压缩),可以使数据集等体积庞大的对象在远程传递中的时间大大减少,并且可以减少网络中断等问题对程序的影响。
1
using
System;
2
using
System.IO;
3
using
System.Data;
4
using
System.Runtime.Serialization;
5
using
System.Runtime.Serialization.Formatters.Binary;
6
7
namespace
Common
8
{
9
public
class
DataFormatter
10
{
11
private
DataFormatter()
{ }
12
/**/
///
<summary>
13
///
Serialize the Data of dataSet to binary format
14
///
</summary>
15
///
<param name="dsOriginal"></param>
16
///
<returns></returns>
17
static
public
byte
[] GetBinaryFormatData(DataSet dsOriginal)
18
{
19
byte
[] binaryDataResult
=
null
;
20
MemoryStream memStream
=
new
MemoryStream();
21
IFormatter brFormatter
=
new
BinaryFormatter();
22
dsOriginal.RemotingFormat
=
SerializationFormat.Binary;
23
24
brFormatter.Serialize(memStream, dsOriginal);
25
binaryDataResult
=
memStream.ToArray();
26
memStream.Close();
27
memStream.Dispose();
28
return
binaryDataResult;
29
}
30
/**/
///
<summary>
31
///
Retrieve dataSet from data of binary format
32
///
</summary>
33
///
<param name="binaryData"></param>
34
///
<returns></returns>
35
static
public
DataSet RetrieveDataSet(
byte
[] binaryData)
36
{
37
DataSet dataSetResult
=
null
;
38
MemoryStream memStream
=
new
MemoryStream(binaryData);
39
IFormatter brFormatter
=
new
BinaryFormatter();
40
41
object
obj
=
brFormatter.Deserialize(memStream);
42
dataSetResult
=
(DataSet)obj;
43
return
dataSetResult;
44
}
45
}
46
}
47
posted on 2005-12-06 11:29
家中慢步
阅读(1489)
评论(2)
编辑
收藏
网摘
所属分类:
乱点代码
评论
#1楼
2006-04-09 20:18
胜 [未注册用户]
回复
引用
你里面的dsOriginal.RemotingFormat 和SerializationFormat.Binary;都不得老是对象不识别,怎么回事情,是不是又是你自定义的一些函数,可以给我吗
QQ:173768847
谢谢
#2楼
2008-04-07 15:37
xeonfeng [未注册用户]
回复
引用
只是对数据进行了序列化,可以考虑压缩一下。。。
图书专题
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
人才
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2005-12-21 18:01 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》
相关文章:
相关链接:
所属分类的其他文章:
C# windows service承載遠程對象
(求助)即时发送异常给开发人员
(转载)vs.net 2005 数据集压缩方法__推荐
(转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
(Winform) DataGrid中自定义boolColumn列,在列标题位置实现全选.
.net 2.0远程传输数据集的优化方法(续)
.net 2.0远程传输数据集的优化方法
在Winform的DataGrid添加自定义boolColumn
自己写的一个日志记录类
事件处理的简单理解
最新IT新闻:
国内3G牌照正式发放 三运营商分获三张牌照
传今年Windows Live Hotmail将启动POP3访问
iTunes音乐商店全面放弃DRM版权保护
令人失望 本届Macworld Keynote内容总结
百度阿拉丁计划 - 看上去很美
酒酣胸胆尚开张,鬓微霜,又何妨!
此人奇懒无比
公告
這個東西原來這麽玩的..
My
blog
is worth
$0.00
.
How much is your blog worth?
导航
博客园
首页
新随笔
联系
订阅
管理
统计
随笔 - 22
文章 - 2
评论 - 18
引用 - 0
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
我参与的团队
敏捷软件开发组织(0/295)
广州.NET俱乐部(0/1829)
哈尔滨.NET俱乐部(0/167)
Dot Net Web服务和Windows服务开发(0/241)
随笔分类
(16)
■
乱点代码(10)
(rss)
■
杂七杂八(6)
(rss)
随笔档案
(21)
■
2007年7月 (1)
■
2007年6月 (1)
■
2006年3月 (1)
■
2006年2月 (1)
■
2006年1月 (4)
■
2005年12月 (4)
■
2005年11月 (6)
■
2005年10月 (3)
文章分类
(1)
■
转载(1)
(rss)
文章档案
(2)
■
2005年12月 (1)
■
2005年9月 (1)
技术网站
■
Asp.net 2.0 templates
■
asp.net QuickStart
■
Donews
■
eggheadcafe
链接
■
DataSet faq
■
Dudu
■
masterpiece
■
Montaque
■
Richie Lee
■
tansm
■
Wayfarer
■
白板文化
■
鞠强
■
吕震宇
积分与排名
积分 - 18280
排名 - 2497
最新评论
1. 爱你的人不会变
每一个人都有一段值得回忆的往事,而每一段往事都有这样或是那样的主人公。在我的世界里曾经出现过你的身影,我不会忘记你的一颦一笑。也许我只是你身边的一个过客,而你则是我生命中的全部。可曾想起当...
--房江祥