日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Flex与.NET互操作(八):使用FluorineFx网关实现远程访问

發布時間:2024/9/20 asp.net 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flex与.NET互操作(八):使用FluorineFx网关实现远程访问 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于遠程訪問在本系列文章中陸續的寫了不少示例了,本文沒有準備深入的去探討,為了鞏固FluorineFx網關的學習和使用。于此,本文將使用FluorineFx網關來提供數據服務等多項功能來介紹通過FluorineFx實現遠程訪問的相關知識點。

?????FluorineFx提供的遠程訪問包括有很多方面的知道點,本文只介紹其中的三個知識點:訪問遠程對象返回對象,返回DataTable,返回DataSet對象.FluorineFx安裝包里自帶有相關的示例程序,要學習更多可直接參考這些示例程序.

?????在實現訪問前我們同樣來做一些準備工作,建立好遠程對象,如下:

1?namespace?Fluorine.ServiceLibrary?2?{?3?????public?class?Book?4?????{?5?????????public?int?Id?{?get;?set;?}?6?????????public?string?Name?{?get;?set;?}?7?????????public?string?Author?{?get;?set;?}?8?????????public?double?Price?{?get;?set;?}?9?????}10?}

?????下面是提供Flex訪問的遠程對象:

?1?namespace?Fluorine.ServiceLibrary?2?{?3?????[RemotingService]?4?????public?class?FluorineService?5?????{?6?????????///?<summary>?7?????????///?返回一個簡單對象?8?????????///?</summary>?9?????????///?<returns></returns>10?????????public?Book?GetBook()11?????????{12?????????????return?new?Book13?????????????{14?????????????????Id?=?1,15?????????????????Name?=?"《三國演義》",16?????????????????Author?=?"羅貫中",17?????????????????Price?=?10018?????????????};19?????????}20?21?????????///?<summary>22?????????///?返回DataTable對象23?????????///?</summary>24?????????///?<returns></returns>25?????????[DataTableType("Fluorine.ServiceLibrary.Book")]26?????????public?DataTable?GetDataTable()27?????????{28?????????????DataTable?dt?=?new?DataTable("Book");29?????????????dt.Columns.Add("Id",?typeof(int));30?????????????dt.Columns.Add("Name",?typeof(string));31?????????????dt.Columns.Add("Author",?typeof(string));32?????????????dt.Columns.Add("Price",?typeof(double));33?34?????????????DataRow?dr?=?dt.NewRow();35?????????????dr["Id"]?=?1;36?????????????dr["Name"]?=?"《三國演義》";37?????????????dr["Author"]?=?"羅貫中";38?????????????dr["Price"]?=?52.30;39?????????????dt.Rows.Add(dr);40?41?????????????dr?=?dt.NewRow();42?????????????dr["Id"]?=?2;43?????????????dr["Name"]?=?"《西游記》";44?????????????dr["Author"]?=?"吳承恩";45?????????????dr["Price"]?=?39.91;46?????????????dt.Rows.Add(dr);47?48?????????????return?dt;49?????????}50?51?????????///?<summary>52?????????///?返回DataSet對象53?????????///?</summary>54?????????///?<returns></returns>55?????????[DataSetType("Fluorine.ServiceLibrary.Book")]56?????????public?DataSet?GetDataSet()57?????????{58?????????????DataSet?ds?=?new?DataSet("DS");59?????????????DataTable?dt?=?ds.Tables.Add("Books");60?????????????dt.Columns.Add("Id",?typeof(int));61?????????????dt.Columns.Add("Name",?typeof(string));62?????????????dt.Columns.Add("Author",?typeof(string));63?????????????dt.Columns.Add("Price",?typeof(double));64?65?????????????DataRow?dr?=?dt.NewRow();66?????????????dr["Id"]?=?1;67?????????????dr["Name"]?=?"《三國演義》";68?????????????dr["Author"]?=?"羅貫中";69?????????????dr["Price"]?=?52.30;70?????????????dt.Rows.Add(dr);71?72?????????????dr?=?dt.NewRow();73?????????????dr["Id"]?=?2;74?????????????dr["Name"]?=?"《西游記》";75?????????????dr["Author"]?=?"吳承恩";76?????????????dr["Price"]?=?39.91;77?????????????dt.Rows.Add(dr);78?79?????????????return?ds;80?????????}81?82?????}83?}

?????上面代碼片段中分別提供了返回一個對象,DataTable,DataSet對象的方法。這里只需要記住兩個關鍵標識就行,它門是:DataTableType和DataSetType.? 下面通過Flex的非可視化組件<mx:RemoteObject>來訪問遠程對象,OK,下面我們來看看具體怎么來調用。?

1?<mx:RemoteObject?id="ro"destination="fluorine">2?source="Fluorine.ServiceLibrary.FluorineService"3?fault="onFaultHandler(event)"4?<mx:method?name="GetBook"result="onGetBookHandler(event)"/>5?<mx:method?name="GetDataTable"result="onGetDataTableHandler(event)"/>6?<mx:method?name="GetDataSet"result="onGetDataSetHandler(event)"/>7?</mx:RemoteObject>

一、返回對象示例

1?[Binable]2?privatevar?book:BookVO;3?4?privatefunction?onGetBookHandler(evt:ResultEvent):void5?{6?book=evt.result?asBookVO;7?}

?????通過點擊按扭調用遠程方法GetBook()完成方法的調用,直接可以將返回結果綁定到界面元素上。

1?<mx:Button?label="Book"click="ro.GetBook()"/>2?<mx:TextInput?width="302"text="{boo.Name+book.Author+book.Price}"/>

二、返回DataTable對象

?????返回DataTable和DataSet,將結果綁定到DataGrid上顯示,先看看DataGrid的定義:

1?<mx:DataGrid?x="10"y="10"width="543"height="147"dataProvider="{books}">2?<mx:columns>3?<mx:DataGridColumn?headerText="編號"dataField="Id"/>4?<mx:DataGridColumn?headerText="書名"dataField="Name"/>5?<mx:DataGridColumn?headerText="作者"dataField="Author"/>6?<mx:DataGridColumn?headerText="價格"dataField="Price"/>7?</mx:columns>8?</mx:DataGrid>

?????DataGrid的數據源為定義的一個ArrayCollection對象,詳細如下:

1?[Binable]2?private?var?books:ArrayCollection; 1?privatefunction?onGetDataTableHandler(evt:ResultEvent):void2?{3?books=evt.result?asArrayCollection;4?}

?三、返回DataTable對象

1?privatefunction?onGetDataSetHandler(evt:ResultEvent):void2?{3?books=evt.result?asArrayCollection;4?}

?????如上便完成了通過FluorineFx網關來實現遠程訪問,下面是完整的Flex端代碼,實現很簡單這里就不作詳細講解:

1?<?xml?version="1.0"?encoding="utf-8"?>2?<mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute">3?<mx:Script>4?<![CDATA[5?import?mx.controls.Alert;6?import?mx.rpc.events.ResultEvent;7?import?mx.rpc.events.FaultEvent;8?import?mx.collections.ArrayCollection;9?[Binable]10?private?var?books:ArrayCollection;11?[Binable]12?private?var?book:BookVO;13?14?private?function?onGetBookHandler(evt:ResultEvent):void15?{16?book=evt.result?as?BookVO;17?}18?19?private?function?onGetDataTableHandler(evt:ResultEvent):void20?{21?books=evt.result?as?ArrayCollection;22?}23?24?private?function?onGetDataSetHandler(evt:ResultEvent):void25?{26?books=evt.result?as?ArrayCollection;27?}28?29?private?function?onFaultHandler(evt:FaultEvent):void30?{31?Alert.show(evt.fault.faultDetail);32?}33?]]>34?</mx:Script>35?<mx:Panel?x="42"y="56"width="578"height="226"layout="absolute"fontSize="12">36?<mx:DataGrid?x="10"y="10"width="543"height="147"dataProvider="{books}">37?<mx:columns>38?<mx:DataGridColumn?headerText="編號"dataField="Id"/>39?<mx:DataGridColumn?headerText="書名"dataField="Name"/>40?<mx:DataGridColumn?headerText="作者"dataField="Author"/>41?<mx:DataGridColumn?headerText="價格"dataField="Price"/>42?</mx:columns>43?</mx:DataGrid>44?<mx:ControlBar>45?<mx:Button?label="DataTable"click="getDataTable()"/>46?<mx:Button?label="DataSet"click="getDataSet()"/>47?<mx:Button?label="Book"click="ro.GetBook()"/>48?<mx:TextInput?width="302"text="{boo.Name+book.Author+book.Price}"/>49?</mx:ControlBar>50?</mx:Panel>51?<mx:RemoteObject?id="ro"destination="fluorine">52?source="Fluorine.ServiceLibrary.FluorineService"53?fault="onFaultHandler(event)"54?<mx:method?name="GetBook"result="onGetBookHandler(event)"/>55?<mx:method?name="GetDataTable"result="onGetDataTableHandler(event)"/>56?<mx:method?name="GetDataSet"result="onGetDataSetHandler(event)"/>57?</mx:RemoteObject>58?</mx:Application>59?

BookVO?如下:?public class BookVO?{?public function BookVo():void?{}?public var Id:Number;?public var Name:String;?public var Author:String;?public var Price:Number;?}

版權說明

? 本文屬原創文章,歡迎轉載,其版權歸作者和博客園共有。??

? 作??????者:Beniao

?文章出處:?http://www.cnblogs.com/

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Flex与.NET互操作(八):使用FluorineFx网关实现远程访问的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。