国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Flex與.NET互操作:基于WebService的數據訪問_.Net教程

2024-07-10 12:50:49
字體:
來源:轉載
供稿:網友

推薦:淺談在.NET應用程序中進行Erlang風格的并行編程
Erlang能夠用來編寫高度可伸縮的并行應用程序,其中經常會出現數以百萬計的輕量級組件,這種類似于線程的組件被稱之為actor。不幸的是,這往往需要您使用Erlang這種相對神秘的編程語言重寫所有代碼。不過我們也有其他選擇,例如使用名不見經傳的CCR平臺來進

Flex提供了<mx:WebService>、<mx:HTTPService>和<mx:RemoteObject>標簽來直接訪問遠程數據,這用于與各種不同語言環境開發提供的遠程服務端數據源(如WebService)進行數據交互通信顯得更加容易.

本文以.NET平臺下C#語言開發的WebService作為遠程數據源,詳細介紹Flex與.NET的WebService的數據通信知識點;包括連接WebService,遠程調用WebService方法,給WebService方法傳遞參數等相關知識點。三個標簽的使用方法基本上是一樣,這里就以<mx:WebService>標簽為例進行介紹。

首先看看如下代碼塊:

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

wsdl屬性指定到要訪問的WebService的wsdl地址既可,其中定義了兩個操作標簽(<mx:operation>),分別對應于WebService中定義的WebMethod方法。result屬性標記訪問WebService方法成功后的處理函數;fault則相反,指定于訪問失敗的處理函數。以上兩個<mx:operation>對應于WebService的WebMethod方法如下:

1 /// <summary>
2 /// 返回字符串
3 /// </summary>
4 /// <returns></returns>
5 [WebMethod]
6 public string HelloWorld()
7 {
8 return "Hello World";
9 }
10
11 /// <summary>
12 /// 返回一個簡單對象
13 /// </summary>
14 /// <returns></returns>
15 [WebMethod]
16 public Book GetBook()
17 {
18 return new Book
19 {
20 Id = 1,
21 Name = "三國演義",
22 Author = "羅貫中",
23 Price = 100
24 };
25 }

如上便是WebService方法定義和在Flex的客戶端(mxml)通過<mx:WebService>標簽來訪問WebService的完整流程,下面我們來看看在Flex的客戶端怎么去調用WebService所定義的方法:

1 <mx:Script>
2 <![CDATA[
3 import mx.controls.Alert;
4 import mx.rpc.events.FaultEvent;
5 import mx.rpc.events.ResultEvent;
6
7 /**
8 * 向WebService發起請求--調用HelloWorld方法,dataService為<mx:WebService>的id
9 * */
10 internal function onRequest():void
11 {
12 dataService.HelloWorld();
13 }
14
15 /**
16 * 請求成功處理返回結果
17 * */
18 internal function onSuccess(evt:ResultEvent):void
19 {
20 Alert.show(evt.result.toString());
21 }
22
23
24 /**
25 * 請求失敗的處理函數
26 * */
27 internal function onFault(evt:FaultEvent):void
28 {
29 Alert.show("訪問WebService失敗!");
30 }
31 ]]>
32 </mx:Script>

通過上面的調用,就可以完成一個Flex和.NET WebService的交互。當然我們在Flash/Flex的客戶端調用WebService也是可以傳遞參數的,如下WebService的WebMethod定義:

1 /// <summary>
2 /// 將傳遞進來的參數轉化為大寫字符返回
3 /// </summary>
4 /// <param name="value"></param>
5 /// <returns></returns>
6 [WebMethod]
7 public string ConvertToUpper(string value)
8 {
9 return value.ToUpper();
10 }

通過在<mx:WebService>標簽下配置<mx:operation>執行該方法就可以訪問了,如下:

1 <mx:operation name="ConvertToUpper" result="onSuccess(event)" fault="onFault(event)"/>

1 /**
2 * 向WebService發起請求
3 * */
4 internal function onRequest():void
5 {
6 //dataService.HelloWorld();
7 dataService.ConvertToUpper("abcdefg");
8 }

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

回到前面看看WebService的方法定義,其中一個方法GetBook是返回的一個Book對象,如果是返回的對象我們在Flex的客戶端怎么來獲取這個對象的值呢?詳細見如下代碼示例:

1 internal function onObject():void
2 {
3 dataService.GetBook();
4 }
5
6 internal function onObjectSuccess(evt:ResultEvent):void
7 {
8 //直接通過事件的result屬性得到返回值,然后直接訪問屬性便OK
9 Alert.show(evt.result.Name);
10 }
11
12 /**
13 * 請求失敗的處理函數
14 * */
15 internal function onFault(evt:FaultEvent):void
16 {
17 Alert.show("訪問WebService失敗!");
18 }

如上便完成了服務端的WebService返回對象到客戶端的調用。

分享:ADO.NET實用經驗無保留曝光
ADO.NET作為微軟最新的數據訪問技術,已經在企業開發中得到了廣泛的應用。對于一線的開發人員來說,掌握基本的概念和技術之后,提高應用水平和解決實際問題的最有效手段,莫過于相互交流彼此的最佳時間經驗經驗。在這篇文章中,兩位ADO.NET專家向讀者毫無保

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 齐齐哈尔市| 郁南县| 土默特左旗| 平昌县| 错那县| 渑池县| 诏安县| 随州市| 庆安县| 北海市| 陆良县| 高要市| 南充市| 永城市| 湛江市| 五河县| 伊宁县| 广元市| 旺苍县| 穆棱市| 夏河县| 获嘉县| 浑源县| 昌都县| 溧阳市| 长寿区| 油尖旺区| 诏安县| 衡山县| 五莲县| 许昌市| 平阴县| 安吉县| 南涧| 应用必备| 广元市| 大足县| 洛浦县| 台中县| 霍城县| 大方县|