日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何實(shí)現(xiàn)WCF傳輸DataSet功能

那天看了WCF的相關(guān)資料片,就決定如何實(shí)現(xiàn)WCF傳輸DataSet,這個(gè)功能主要是通過(guò)客戶端調(diào)用服務(wù)端的一個(gè)函數(shù),使函數(shù)接受一個(gè)DataSet的參數(shù),然后再返回一個(gè)DataSet,這個(gè)功能很容易,使用幾段代碼就能搞定。

如果WCF傳輸DataSet內(nèi)的數(shù)據(jù)量非常大的時(shí)候,那就麻煩了.(暫不討論傳輸大數(shù)據(jù)量的DataSet是否合理),WCF默認(rèn)最大傳輸數(shù)據(jù)量為64K,當(dāng)然可以實(shí)現(xiàn)修改配置文件來(lái)傳輸大數(shù)據(jù)量,可是不能解決本質(zhì)的問(wèn)題,我目前解決這個(gè)問(wèn)題的方式是。#t#

把一個(gè)WCF傳輸DataSet序列化為一個(gè)字節(jié),然后把這些字節(jié)進(jìn)行壓縮,然后每次發(fā)送一小段字節(jié)回去,接受到這個(gè)些字節(jié)以后然后在解壓縮,再反序列化為為WCF傳輸DataSet這樣就實(shí)現(xiàn)了,傳入一個(gè)WCF傳輸DataSet然后再返回一個(gè)DataSet,這樣的話,就需要用到WCF的雙向通信,使用回調(diào)函數(shù)。

 
 
  1. int intNum = getHello.serviceTime() + 1; //獲取讀取字節(jié)流的次數(shù)  
  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); //寫(xiě)到內(nèi)存中  
  8. }  
  9. Mstream.Position = 0;   
  10. getbyte = new byte[Mstream.Length];   
  11. Mstream.Read(getbyte, 0, getbyte.Length); //從內(nèi)存中讀到getbyte中  
  12. Mstream.Close();   
  13. 反序列化  
  14. DataSet ds = KCDataFormatter.RetrieveDataSetDecompress(getbyte); 這里就得到了服務(wù)端返回的DataSet. 

getData()函數(shù)內(nèi)可以編寫(xiě)需要上傳的DataSet,我這里是生成20W條記錄.通過(guò)回調(diào)函數(shù)就會(huì)把這20W條數(shù)據(jù)傳入服務(wù)端,回調(diào)結(jié)束了,WCF傳輸DataSet也就傳入了服務(wù)端了.(我這里服務(wù)端沒(méi)有任何處理這個(gè)WCF傳輸DataSet就直接返回這個(gè)WCF傳輸DataSet會(huì)客戶端),客戶端繼續(xù)執(zhí)行他的邏輯,此時(shí)的邏輯是把剛才傳入的服務(wù)端的Dataset再返回給客戶端。


文章標(biāo)題:如何實(shí)現(xiàn)WCF傳輸DataSet功能
當(dāng)前URL:http://m.5511xx.com/article/dpcogic.html