日韩无码专区无码一级三级片|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)銷解決方案
在Silverlight3中消耗WCF服務(wù)

消耗服務(wù)

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出云南免費(fèi)做網(wǎng)站回饋大家。

VS2008的Silverlight工具提供了內(nèi)置功能來(lái)創(chuàng)建用Silverlight激活的WCF服務(wù)并且在不需要編寫(xiě)大量代碼的情況下消耗WCF服務(wù)。Silverlight 3現(xiàn)在支持二進(jìn)制XML,這一功能可以用更快的速度把數(shù)據(jù)從服務(wù)器傳到客戶端。如果需要的話,標(biāo)準(zhǔn)SOAP信息也能被傳送。

如果你以前消耗過(guò)一個(gè)ASP.NET ASMX Web 服務(wù),那么你會(huì)覺(jué)得消耗WCF服務(wù)易如反掌。VS2008的新增服務(wù)引用對(duì)話框允許你選取該服務(wù)并在不編寫(xiě)大量代碼的情況下生成客戶端。生成代理前,要明白Silverlight只能調(diào)回到原始服務(wù)器,在原始服務(wù)器上,會(huì)默認(rèn)提供Silverlight XAP應(yīng)用程序文件。

如果你需要調(diào)用一個(gè)WCF服務(wù),該服務(wù)可能存在于不同域或不同端口中,那么該服務(wù)必須擁有客戶訪問(wèn)政策文件,文件名為clientaccesspolicy.xml,文件位于服務(wù)器低端。Silverlight會(huì)檢查這個(gè)文件以查看是否該文件被允許執(zhí)行跨域的調(diào)用。

下面的例一展示了一個(gè)樣本文件:

 
 
 
 
  1. < ?xml version="1.0" encoding="utf-8"?> 
  2. < access-policy>
  3. < cross-domain-access>
  4. < policy>
  5. < allow-from>
  6. < domain uri="*"/>
  7. < /allow-from>
  8. < grant-to>
  9. < resource path="/" include-subpaths="true"/>
  10. < /grant-to>
  11. < /policy>
  12. < /cross-domain-access>
  13. < /access-policy>

例一:客戶訪問(wèn)政策文件可以放置到服務(wù)器低端以便允許Silverlight客戶來(lái)調(diào)用處于不同域或運(yùn)行于不同端口的服務(wù)。

為了創(chuàng)建一個(gè)WCF服務(wù)代理,你首先需要?jiǎng)?chuàng)建一個(gè)Silverlight應(yīng)用程序項(xiàng)目。一旦該項(xiàng)目被創(chuàng)建好,你就可以右鍵單擊項(xiàng)目,然后選擇添加服務(wù)參考。如下所示,系統(tǒng)會(huì)提供Add Service Reference對(duì)話框,圖一顯示出Add Service Reference對(duì)話框可以在沒(méi)有大量代碼的情況下快速而簡(jiǎn)便地生成客戶代理。

圖一:

如果WCF服務(wù)位于相同的VS方案中,你可以點(diǎn)擊Discover按鈕。否則,你就要輸入到達(dá)Address文本框中Web Service Description Language(WSDL)文件的路徑。一旦文件被定位,你就可以給代理代碼一個(gè)命名空間,然后點(diǎn)擊確認(rèn)按鈕。

一旦客戶代理被創(chuàng)建,你就可以調(diào)用Silverlight應(yīng)用中的服務(wù)。要記住所有與Silverlight一起發(fā)生的網(wǎng)絡(luò)操作都是異步的,因此服務(wù)被調(diào)用的時(shí)候,瀏覽器不會(huì)鎖定。

例二展示了一個(gè)使用客戶代碼調(diào)用服務(wù)和綁定數(shù)據(jù)的示例:

 
 
 
 
  1.  void MainPage_Loaded(object sender, RoutedEventArgs e) 
  2. {
  3. //Create service proxy
  4. WcfService.Service1Client proxy = new WcfService.Service1Client();
  5. //Wire the proxy to a completed handler to allow the async operation to be handled
  6. proxy.GetCustomerCompleted +=
  7. new EventHandler< WcfService.GetCustomerCompletedEventArgs> (
  8. proxy_GetCustomerCompleted);
  9. //Call the service asynchronously
  10. proxy.GetCustomerAsync(id);
  11. }
  12. void proxy_GetCustomerCompleted(object sender, SilverlightApplication1.WcfService.GetCustomerCompletedEventArgs e)
  13. {
  14. //Bind the returned data to the DataContext
  15. this.DataContext = e.Result;
  16. }

例二;使用一個(gè)客戶代理對(duì)象來(lái)調(diào)用Silverlight中的WCF服務(wù)。

看一看例二中的代碼,你可以看出代理對(duì)象是***被創(chuàng)建,然后通過(guò)一個(gè)事件驅(qū)動(dòng)型模式,被名為proxy_GetCustomerCompleted的異步事件處理器捆綁起來(lái)。該服務(wù)通過(guò)援引GetCustomerAsync方法被異步調(diào)用。一旦服務(wù)返回了數(shù)據(jù),調(diào)回方法會(huì)被自動(dòng)調(diào)用,GetCustomerCompletedEventArgs參數(shù)會(huì)被訪問(wèn)以檢索數(shù)據(jù)。在這個(gè)示例中,數(shù)據(jù)被直接綁定到應(yīng)用程序的DataContext屬性中。注意不需要有額外的操作來(lái)設(shè)定數(shù)據(jù)傳遞路線。代理會(huì)自動(dòng)處理所有的事情。

Silverlight應(yīng)用程序不能直接調(diào)用一個(gè)數(shù)據(jù)庫(kù),但是他們可以從一系列諸如WCF服務(wù),ASMX服務(wù)和其他標(biāo)準(zhǔn)兼容等服務(wù)中存取數(shù)據(jù)。


當(dāng)前題目:在Silverlight3中消耗WCF服務(wù)
網(wǎng)頁(yè)網(wǎng)址:http://m.5511xx.com/article/cccdsdc.html