日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

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

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

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

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

本文以.NET平臺下C#語言開發(fā)的WebService作為遠程數(shù)據(jù)源,詳細介紹Flex與.NET的WebService的數(shù)據(jù)通信知識點;包括連接WebService,遠程調(diào)用WebService方法,給WebService方法傳遞參數(shù)等相關(guān)知識點。三個標簽的使用方法基本上是一樣,這里就以<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>),分別對應(yīng)于WebService中定義的WebMethod方法。result屬性標記訪問WebService方法成功后的處理函數(shù);fault則相反,指定于訪問失敗的處理函數(shù)。以上兩個<mx:operation>對應(yīng)于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的客戶端怎么去調(diào)用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發(fā)起請求--調(diào)用HelloWorld方法,dataService為<mx:WebService>的id
9 * */
10 internal function onRequest():void
11 {
12 dataService.HelloWorld();
13 }
14
15 /**
16 * 請求成功處理返回結(jié)果
17 * */
18 internal function onSuccess(evt:ResultEvent):void
19 {
20 Alert.show(evt.result.toString());
21 }
22
23
24 /**
25 * 請求失敗的處理函數(shù)
26 * */
27 internal function onFault(evt:FaultEvent):void
28 {
29 Alert.show("訪問WebService失敗!");
30 }
31 ]]>
32 </mx:Script>

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

1 /// <summary>
2 /// 將傳遞進來的參數(shù)轉(zhuǎn)化為大寫字符返回
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>執(zhí)行該方法就可以訪問了,如下:

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

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

另外,我們還可以通過<mx:request>來傳遞參數(shù),這里只需要知道<mx:request></mx:request>里的參數(shù)配置與WebService提供的WebMethod方法參數(shù)同名就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 * 請求失敗的處理函數(shù)
14 * */
15 internal function onFault(evt:FaultEvent):void
16 {
17 Alert.show("訪問WebService失敗!");
18 }

如上便完成了服務(wù)端的WebService返回對象到客戶端的調(diào)用。

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

來源:模板無憂//所屬分類:.Net教程/更新時間:2009-03-13
相關(guān).Net教程