使用FluorineFx网关实现远程访问.docx

上传人:b****4 文档编号:5460918 上传时间:2022-12-16 格式:DOCX 页数:5 大小:18.48KB
下载 相关 举报
使用FluorineFx网关实现远程访问.docx_第1页
第1页 / 共5页
使用FluorineFx网关实现远程访问.docx_第2页
第2页 / 共5页
使用FluorineFx网关实现远程访问.docx_第3页
第3页 / 共5页
使用FluorineFx网关实现远程访问.docx_第4页
第4页 / 共5页
使用FluorineFx网关实现远程访问.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

使用FluorineFx网关实现远程访问.docx

《使用FluorineFx网关实现远程访问.docx》由会员分享,可在线阅读,更多相关《使用FluorineFx网关实现远程访问.docx(5页珍藏版)》请在冰豆网上搜索。

使用FluorineFx网关实现远程访问.docx

使用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访问的远程对象:

Code

 1 namespace Fluorine.ServiceLibrary

 2 {

 3     [RemotingService]

 4     public class FluorineService

 5     {

 6         /// 

 7         /// 返回一个简单对象

 8         /// 

 9         /// 

10         public Book GetBook()

11         {

12             return new Book

13             {

14                 Id = 1,

15                 Name = "《三国演义》",

16                 Author = "罗贯中",

17                 Price = 100

18             };

19         }

20 

21         /// 

22         /// 返回DataTable对象

23         /// 

24         /// 

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         /// 

52         /// 返回DataSet对象

53         /// 

54         /// 

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的非可视化组件

RemoteObject>来访问远程对象,OK,下面我们来看看具体怎么来调用。

 

RemoteObject id="ro" destination="fluorine" >

2     source="Fluorine.ServiceLibrary.FluorineService"

3     fault="onFaultHandler(event)"

4     

method name="GetBook" result="onGetBookHandler(event)"/>

5     

method name="GetDataTable" result="onGetDataTableHandler(event)"/>

6     

method name="GetDataSet" result="onGetDataSetHandler(event)"/>

RemoteObject>

 

一、返回对象示例

1 [Binable]

2 private var book:

BookVO;

3     

4 private function onGetBookHandler(evt:

ResultEvent):

void

5 {

6     book=evt.result as BookVO;

7 }

 

     通过点击按扭调用远程方法GetBook()完成方法的调用,直接可以将返回结果绑定到界面元素上。

Button label="Book" click="ro.GetBook()"/>

TextInput width="302" text="{boo.Name+book.Author+book.Price}"/>

 

二、返回DataTable对象

     返回DataTable和DataSet,将结果绑定到DataGrid上显示,先看看DataGrid的定义:

DataGrid x="10" y="10" width="543" height="147" dataProvider="{books}">

2     

columns>

3             

DataGridColumn headerText="编号" dataField="Id"/>

4             

DataGridColumn headerText="书名" dataField="Name"/>

5             

DataGridColumn headerText="作者" dataField="Author"/>

6             

DataGridColumn headerText="价格" dataField="Price"/>

7     

columns>

DataGrid>

 

     DataGrid的数据源为定义的一个ArrayCollection对象,详细如下:

1 [Binable]

2 private var books:

ArrayCollection;

 

1 private function onGetDataTableHandler(evt:

ResultEvent):

void

2 {

3     books=evt.result as ArrayCollection;

4 }

 

 三、返回DataSet对象

1 private function onGetDataSetHandler(evt:

ResultEvent):

void

2 {

3     books=evt.result as ArrayCollection;

4 }

 

     如上便完成了通过FluorineFx网关来实现远程访问,下面是完整的Flex端代码,实现很简单这里就不作详细讲解:

 1 

xml version="1.0" encoding="utf-8"?

>

 2 

Application xmlns:

mx=" layout="absolute">

 3     

.>

 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):

void

15             {

16                 book=evt.result as BookVO;

17             }

18             

19             private function onGetDataTableHandler(evt:

ResultEvent):

void

20             {

21                 books=evt.result as ArrayCollection;

22             }

23             

24             private function onGetDataSetHandler(evt:

ResultEvent):

void

25             {

26                 books=evt.result as ArrayCollection;

27             }

28             

29             private function onFaultHandler(evt:

FaultEvent):

void

30             {

31                 Alert.show(evt.fault.faultDetail);

32             }

33         ]]>

34     

.>

35     

Panel x="42" y="56" width="578" height="226" layout="absolute" fontSize="12">

36     

DataGrid x="10" y="10" width="543" height="147" dataProvider="{books}">

37         

columns>

38                 

DataGridColumn headerText="编号" dataField="Id"/>

39                 

DataGridColumn headerText="书名" dataField="Name"/>

40                 

DataGridColumn headerText="作者" dataField="Author"/>

41                 

DataGridColumn headerText="价格" dataField="Price"/>

42         

columns>

43     

DataGrid>

44     

ControlBar>

45         

Button label="DataTable" click="getDataTable()"/>

46         

Button label="DataSet" click="getDataSet()"/>

47         

Button label="Book" click="ro.GetBook()"/>

48         

TextInput width="302" text="{boo.Name+book.Author+book.Price}"/>

49     

ControlBar>

50     

Panel>

51     

RemoteObject id="ro" destination="fluorine" >

52         source="Fluorine.ServiceLibrary.FluorineService"

53         fault="onFaultHandler(event)"

54         

method name="GetBook" result="onGetBookHandler(event)"/>

55         

method name="GetDataTable" result="onGetDataTableHandler(event)"/>

56         

method name="GetDataSet" result="onGetDataSetHandler(event)"/>

57     

RemoteObject>

58 

Application>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1