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

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

新聞中心

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

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

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

把一個WCF傳輸DataSet序列化為一個字節(jié),然后把這些字節(jié)進(jìn)行壓縮,然后每次發(fā)送一小段字節(jié)回去,接受到這個些字節(jié)以后然后在解壓縮,再反序列化為為WCF傳輸DataSet這樣就實現(xiàn)了,傳入一個WCF傳輸DataSet然后再返回一個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); //寫到內(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)可以編寫需要上傳的DataSet,我這里是生成20W條記錄.通過回調(diào)函數(shù)就會把這20W條數(shù)據(jù)傳入服務(wù)端,回調(diào)結(jié)束了,WCF傳輸DataSet也就傳入了服務(wù)端了.(我這里服務(wù)端沒有任何處理這個WCF傳輸DataSet就直接返回這個WCF傳輸DataSet會客戶端),客戶端繼續(xù)執(zhí)行他的邏輯,此時的邏輯是把剛才傳入的服務(wù)端的Dataset再返回給客戶端。


分享題目:如何實現(xiàn)WCF傳輸DataSet功能
標(biāo)題路徑:http://m.5511xx.com/article/dpcogic.html