自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析Flex與.NET互操作中基于WebService的數(shù)據(jù)訪問(wèn)

開(kāi)發(fā) 后端
本文以.NET平臺(tái)下C#語(yǔ)言開(kāi)發(fā)的WebService作為遠(yuǎn)程數(shù)據(jù)源,詳細(xì)介紹Flex與.NET的WebService的數(shù)據(jù)通信知識(shí)點(diǎn);包括連接WebService,遠(yuǎn)程調(diào)用WebService方法,給WebService方法傳遞參數(shù)等相關(guān)知識(shí)點(diǎn)。

在學(xué)習(xí)Flex的過(guò)程中,你或許會(huì)遇到Flex與.NET互操作:基于WebService的數(shù)據(jù)訪問(wèn)問(wèn)題,這里和大家分享一下Flex與.NET的WebService的數(shù)據(jù)通信知識(shí)點(diǎn)。

Flex與.NET互操作:基于WebService的數(shù)據(jù)訪問(wèn)

Flex提供了<mx:WebService>、<mx:HTTPService>和<mx:RemoteObject>標(biāo)簽來(lái)直接訪問(wèn)遠(yuǎn)程數(shù)據(jù),這用于與各種不同語(yǔ)言環(huán)境開(kāi)發(fā)提供的遠(yuǎn)程服務(wù)端數(shù)據(jù)源(如WebService)進(jìn)行數(shù)據(jù)交互通信顯得更加容易.

本文以.NET平臺(tái)下C#語(yǔ)言開(kāi)發(fā)的WebService作為遠(yuǎn)程數(shù)據(jù)源,詳細(xì)介紹Flex與.NET的WebService的數(shù)據(jù)通信知識(shí)點(diǎn);包括連接WebService,遠(yuǎn)程調(diào)用WebService方法,給WebService方法傳遞參數(shù)等相關(guān)知識(shí)點(diǎn)。三個(gè)標(biāo)簽的使用方法基本上是一樣,這里就以<mx:WebService>標(biāo)簽為例進(jìn)行介紹。

連接WebService

首先看看如下代碼塊:
 

  1. 1<mx:WebServiceidmx:WebServiceid="dataService" 
  2. 2wsdl="http://localhost/FlashFlex/DataWebService.asmx?wsdl" 
  3. 3useProxy="false"> 
  4. 4<mx:operationnamemx:operationname="HelloWorld"result="onSuccess(event)"fault="onFault(event)"/> 
  5. 5<mx:operationnamemx:operationname="GetBook"fault="onFault(event)"result="onObjectSuccess(event)"/> 
  6. 6</mx:WebService> 

 wsdl屬性指定到要訪問(wèn)的WebService的wsdl地址既可,其中定義了兩個(gè)操作標(biāo)簽(<mx:operation>),分別對(duì)應(yīng)于WebService中定義的WebMethod方法。

result屬性標(biāo)記訪問(wèn)WebService方法成功后的處理函數(shù);fault則相反,指定于訪問(wèn)失敗的處理函數(shù)。以上兩個(gè)<mx:operation>對(duì)應(yīng)于WebService的WebMethod方法如下:
 

  1. 1///<summary> 
  2. 2///返回字符串  
  3. 3///</summary> 
  4. 4///<returns></returns> 
  5. 5[WebMethod]  
  6. 6publicstringHelloWorld()  
  7. 7{  
  8. 8return"HelloWorld";  
  9. 9}  
  10. 10  
  11. 11///<summary> 
  12. 12///返回一個(gè)簡(jiǎn)單對(duì)象  
  13. 13///</summary> 
  14. 14///<returns></returns> 
  15. 15[WebMethod]  
  16. 16publicBookGetBook()  
  17. 17{  
  18. 18returnnewBook  
  19. 19{  
  20. 20Id=1,  
  21. 21Name="三國(guó)演義",  
  22. 22Author="羅貫中",  
  23. 23Price=100 
  24. 24};  
  25. 25}  

 #p#
調(diào)用WebService所定義方法

完整流程,下面我們來(lái)看看在Flex的客戶(hù)端怎么去調(diào)用WebService所定義的方法:
 

  1. 1<mx:Script> 
  2. 2<![CDATA[  
  3. 3importmx.controls.Alert;  
  4. 4importmx.rpc.events.FaultEvent;  
  5. 5importmx.rpc.events.ResultEvent;  
  6. 6  
  7. 7/**  
  8. 8*向WebService發(fā)起請(qǐng)求--調(diào)用HelloWorld方法,dataService為<mx:WebService>的id  
  9. 9**/  
  10. 10internalfunctiononRequest():void  
  11. 11{  
  12. 12dataService.HelloWorld();  
  13. 13}  
  14. 14  
  15. 15/**  
  16. 16*請(qǐng)求成功處理返回結(jié)果  
  17. 17**/  
  18. 18internalfunctiononSuccess(evt:ResultEvent):void  
  19. 19{  
  20. 20Alert.show(evt.result.toString());  
  21. 21}  
  22. 22  
  23. 23  
  24. 24/**  
  25. 25*請(qǐng)求失敗的處理函數(shù)  
  26. 26**/  
  27. 27internalfunctiononFault(evt:FaultEvent):void  
  28. 28{  
  29. 29Alert.show("訪問(wèn)WebService失敗!");  
  30. 30}  
  31. 31]]> 
  32. 32</mx:Script> 

 #p#給WebService方法傳遞參數(shù)

通過(guò)上面的調(diào)用,就可以完成一個(gè)Flex和.NETWebService的交互。當(dāng)然我們?cè)贔lash/Flex的客戶(hù)端調(diào)用WebService也是可以傳遞參數(shù)的,如下WebService的WebMethod定義:
 

  1. 1///<summary> 
  2. 2///將傳遞進(jìn)來(lái)的參數(shù)轉(zhuǎn)化為大寫(xiě)字符返回  
  3. 3///</summary> 
  4. 4///<paramnameparamname="value"></param> 
  5. 5///<returns></returns> 
  6. 6[WebMethod]  
  7. 7publicstringConvertToUpper(stringvalue)  
  8. 8{  
  9. 9returnvalue.ToUpper();  
  10. 10}  

 ◆通過(guò)在<mx:WebService>標(biāo)簽下配置<mx:operation>執(zhí)行該方法就可以訪問(wèn)了,如下:
 

  1. 1<mx:operationnamemx:operationname="ConvertToUpper"result="onSuccess(event)"fault="onFault(event)"/> 
  2. 1/**  
  3. 2*向WebService發(fā)起請(qǐng)求  
  4. 3**/  
  5. 4internalfunctiononRequest():void  
  6. 5{  
  7. 6//dataService.HelloWorld();  
  8. 7dataService.ConvertToUpper("abcdefg");  
  9. 8} 

另外,我們還可以通過(guò)<mx:request>來(lái)傳遞參數(shù),這里只需要知道<mx:request></mx:request>里的參數(shù)配置與WebService提供的WebMethod方法參數(shù)同名就OK。

回到前面看看WebService的方法定義,其中一個(gè)方法GetBook是返回的一個(gè)Book對(duì)象,如果是返回的對(duì)象我們?cè)贔lex的客戶(hù)端怎么來(lái)獲取這個(gè)對(duì)象的值呢?詳細(xì)見(jiàn)如下代碼示例:
 

  1. 1internalfunctiononObject():void  
  2. 2{  
  3. 3dataService.GetBook();  
  4. 4}  
  5. 5  
  6. 6internalfunctiononObjectSuccess(evt:ResultEvent):void  
  7. 7{  
  8. 8//直接通過(guò)事件的result屬性得到返回值,然后直接訪問(wèn)屬性便OK  
  9. 9Alert.show(evt.result.Name);  
  10. 10}  
  11. 11  
  12. 12/**  
  13. 13*請(qǐng)求失敗的處理函數(shù)  
  14. 14**/  
  15. 15internalfunctiononFault(evt:FaultEvent):void  
  16. 16{  
  17. 17Alert.show("訪問(wèn)WebService失敗!");  
  18. 18}如上便完成了服務(wù)端的WebService返回對(duì)象到客戶(hù)端的調(diào)用。  

【編輯推薦】

  1. Flex調(diào)用Webservice實(shí)現(xiàn)天氣預(yù)報(bào)
  2. 解析Flex渲染器的使用
  3. 全面認(rèn)識(shí)Flex應(yīng)用程序的六大元素
  4. 揭開(kāi)Flex正則表達(dá)式的神秘面紗
  5. Flex數(shù)據(jù)綁定及其使用頻繁的幾種情況 

 

責(zé)任編輯:佚名 來(lái)源: it168.com
相關(guān)推薦

2009-12-24 10:37:03

ADO.NET訪問(wèn)數(shù)據(jù)

2024-06-18 13:17:02

數(shù)據(jù)庫(kù)框架

2010-08-09 15:09:27

Flex數(shù)據(jù)訪問(wèn)

2010-08-11 13:01:09

Flex.NETSocket

2009-10-26 09:04:08

Java和.NET互操Web Service

2009-09-01 15:24:59

C++、C#和JAVA

2009-08-27 17:54:13

C#與Flex

2009-09-07 15:25:24

MySQL數(shù)據(jù)庫(kù)互操作Silverlight

2024-06-12 07:48:24

C#WebService.NET

2010-04-22 10:26:16

.NET互操作

2010-08-10 10:56:39

2010-08-03 14:24:37

Flex與java集成

2010-07-30 09:16:24

Flex數(shù)據(jù)綁定

2010-07-30 14:26:21

FlexFlash

2009-09-07 13:25:56

Silverlight

2011-05-20 16:33:47

委托接口

2010-07-28 14:11:49

Flexasp.net

2010-08-13 15:08:55

Flex數(shù)據(jù)訪問(wèn)

2010-08-13 09:11:11

LabelFlex

2010-07-05 10:44:35

SQL Server數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)