如何实现WCF传输DataSet功能

开发 后端
为每一个软件行业的从业人员,无论是开发人员、项目经理、还是测试人员,也要不断适应这个趋势,我认为WCF传输DataSet只会使我们的工作更简单和更轻松。

那天看了WCF的相关资料片,就决定如何实现WCF传输DataSet,这个功能主要是通过客户端调用服务端的一个函数,使函数接受一个DataSet的参数,然后再返回一个DataSet,这个功能很容易,使用几段代码就能搞定。

如果WCF传输DataSet内的数据量非常大的时候,那就麻烦了.(暂不讨论传输大数据量的DataSet是否合理),WCF默认最大传输数据量为64K,当然可以实现修改配置文件来传输大数据量,可是不能解决本质的问题,我目前解决这个问题的方式是。#t#

把一个WCF传输DataSet序列化为一个字节,然后把这些字节进行压缩,然后每次发送一小段字节回去,接受到这个些字节以后然后在解压缩,再反序列化为为WCF传输DataSet这样就实现了,传入一个WCF传输DataSet然后再返回一个DataSet,这样的话,就需要用到WCF的双向通信,使用回调函数。

  1. int intNum = getHello.serviceTime() + 1; //获取读取字节流的次数  
  2. MemoryStream Mstream = new MemoryStream();   
  3. byte[] getbyte;   
  4. for (int i = 1; i < intNum; i++)  
  5. {  
  6. getbyte = getHello.DownByte(i);   
  7. Mstream.Write(getbyte, 0, getbyte.Length); //写到内存中  
  8. }  
  9. Mstream.Position = 0;   
  10. getbyte = new byte[Mstream.Length];   
  11. Mstream.Read(getbyte, 0, getbyte.Length); //从内存中读到getbyte中  
  12. Mstream.Close();   
  13. 反序列化  
  14. DataSet ds = KCDataFormatter.RetrieveDataSetDecompress(getbyte); 这里就得到了服务端返回的DataSet. 

getData()函数内可以编写需要上传的DataSet,我这里是生成20W条记录.通过回调函数就会把这20W条数据传入服务端,回调结束了,WCF传输DataSet也就传入了服务端了.(我这里服务端没有任何处理这个WCF传输DataSet就直接返回这个WCF传输DataSet会客户端),客户端继续执行他的逻辑,此时的逻辑是把刚才传入的服务端的Dataset再返回给客户端。

 

责任编辑:chenqingxiang 来源: 机械工业出版社
相关推荐

2009-11-09 14:02:31

WCF传输数据

2009-12-08 11:17:41

WCF双向通信

2010-02-25 13:35:27

WCF tcpTrac

2010-02-22 14:28:35

WCF实现loadin

2009-12-21 18:46:50

WCF传输大数据

2009-06-12 14:28:14

WCF传输安全

2009-06-16 11:49:00

JQuery实现loaWCF

2010-02-22 16:26:47

WCF传输数据

2009-12-22 15:33:50

WCF传输安全

2009-12-08 13:06:15

WCF通道

2010-03-01 13:17:46

WCF单向服务

2009-10-28 16:31:37

Oracle传输表空间

2010-02-25 10:10:29

WCF使用Header

2009-11-09 16:25:24

WCF Data Co

2009-12-04 17:35:51

WCF 服务

2010-03-02 18:16:45

WCF可靠性传输

2009-12-08 14:28:16

XTemplate +

2010-02-23 09:51:32

WCF MTOM

2009-11-05 16:45:52

WCF可靠性传输

2010-02-26 09:50:57

WCF传输安全机制
点赞
收藏

51CTO技术栈公众号