一起谈.NET技术,Flex 数据访问 WebService (上)

  Flex 支持格式设置为 SOAP 消息且通过 HTTP 传输的 Web 服务请求和结果。SOAP 提供基于 XML 格式的定义,用于在 Web 服务客户端(如使用 Flex 构建的应用程序)和 Web 服务之间交换结构化和类型化信息。

  在.NET和Flex的数据交互可以通过Web Services访问string,object,datatable,List<>,ArrayList等。

  .NET和Flex的数据示例:

  1、返回对象

  定义返回对象的Web Method:


[WebMethod]
public Employee GetEmployee()
{
return new Employee
{
id = 1,
name = "Shawn",
age = 25
};
}

  Flex前端代码:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function onResult(event:ResultEvent):void
{
Alert.show(event.result.name);
}

private function onFault(event:FaultEvent):void
{
Alert.show("调+event.message);
}

private function GetEmployee():void
{
this.MyService.GetEmployee.send();
}
]]>
</mx:Script>
<mx:Button label="Get Employee" click="GetEmployee()"/>

<mx:WebService id="MyService" wsdl="http://localhost:4081Flex.asmx?WSDL" useProxy="false" result="onResult(event)" fault="onFault(event)">
<mx:operation name="GetEmployee"/>
</mx:WebService>
</mx:Application>

  运行结果:

  2、返回DataTable

  定义返回DataTable的Web Method:


[WebMethod]
public DataTable GetDataTable()
{
DataTable dt = new DataTable("Employees");
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("age", typeof(int));

DataRow dr = dt.NewRow();
dr["id"] = 1;
dr["name"] = "Shawn";
dr["age"] = 25;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["id"] = 2;
dr["name"] = "Jack";
dr["age"] = 23;
dt.Rows.Add(dr);

return dt;
}

  Flex前端代码:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function onResult(event:ResultEvent):void
{
}
private function onFault(event:FaultEvent):void
{
Alert.show("调+event.message);
}
private function GetDataTable():void
{
this.MyService.GetDataTable.send();
}
]]>
</mx:Script>
<mx:Panel width="400">
<mx:DataGrid id="gvEmployee" dataProvider="{this.MyService.GetDataTable.lastResult.Tables.Employees.Rows}" width="100%">
<mx:columns>
<mx:DataGridColumn headerText="ID" dataField="id"/>
<mx:DataGridColumn headerText="Name" dataField="name"/>
<mx:DataGridColumn headerText="Age" dataField="age"/>
</mx:columns>
</mx:DataGrid>
<mx:ControlBar>
<mx:Button label="Get DataTable" click="GetDataTable()"/>
</mx:ControlBar>
</mx:Panel>
<mx:WebService id="MyService" wsdl="http://localhost:4081/Flex.asmx?WSDL" useProxy="false" result="onResult(event)" fault="onFault(event)">
<mx:operation name="GetDataTable"/>
</mx:WebService>
</mx:Application> 

  运行结果:

  3、返回List<>


[WebMethod]
public List<Employee> GetEmployeeList()
{
return new List<Employee>
{
new Employee
{
id = 1,
name = "Shawn",
age = 25
},
new Employee
{
id = 2,
name = "Jack",
age = 23
}
};
}

  Flex前端:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function onResult(event:ResultEvent):void
{
var arr:ArrayCollection = this.MyService.GetEmployeeList.lastResult as ArrayCollection;
gvEmployee.dataProvider=arr;
}

private function onFault(event:FaultEvent):void
{
Alert.show("调+event.message);
}

private function GetEmployeeList():void
{
this.MyService.GetEmployeeList.send();
}
]]>
</mx:Script>

<mx:Panel width="400">
<mx:DataGrid id="gvEmployee" width="100%">
<mx:columns>
<mx:DataGridColumn headerText="ID" dataField="id"/>
<mx:DataGridColumn headerText="Name" dataField="name"/>
<mx:DataGridColumn headerText="Age" dataField="age"/>
</mx:columns>
</mx:DataGrid>
<mx:ControlBar>
<mx:Button label="Get List" click="GetEmployeeList()"/>
</mx:ControlBar>
</mx:Panel>
<mx:WebService id="MyService" wsdl="http://localhost:4081/Flex.asmx?WSDL" useProxy="false" result="onResult(event)" fault="onFault(event)">
<mx:operation name="GetEmployeeList"/>
</mx:WebService>
</mx:Application>

  运行结果:

时间: 2024-09-20 05:38:31

一起谈.NET技术,Flex 数据访问 WebService (上)的相关文章

一起谈.NET技术,Flex 数据访问 WebService 使用参数(下)

上一篇介绍Flex的WebService的使用,可以调用多种类型的数据,都是直接调用,没有使用参数,本篇学习使用参数调用WebService,WebService的参数类型可以是:简单类型(如数值,字串串等),简单实体模型(只有属性),比较复杂的实体模型(内陷其他实体),以及集合,XML等. Flex在调用不同后台实现的Web Method方式只是在构造参数有些区别,调用方式是一样的,以下简单介绍Flex调用.NET的Web Method使用不同参数.       定义Web Method用到的

Flex 数据访问 WebService (上)

Flex 支持格式设置为 SOAP 消息且通过 HTTP 传输的 Web 服务请求和结果.SOAP 提供基于 XML 格式的定义,用于在 Web 服务客户端(如使用 Flex 构建的应用程序)和 Web 服务之间交换结构化和类型化信息. 在.NET和Flex的数据交互可以通过Web Services访问string,object,datatable,List<>,ArrayList等. .NET和Flex的数据示例: 1.返回对象 定义返回对象的Web Method: [WebMethod]

Flex 数据访问 WebService 使用参数(下)

上一篇介绍Flex的WebService的使用,可以调用多种类型的数据,都是直接调用,没有使用参数,本篇学习使用参数调用WebService,WebService的参数类型可以是:简单类型(如数值,字串串等),简单实体模型(只有属性),比较复杂的实体模型(内陷其他实体),以及集合,XML等. Flex在调用不同后台实现的Web Method方式只是在构造参数有些区别,调用方式是一样的,以下简单介绍Flex调用.NET的Web Method使用不同参数. 定义Web Method用到的类: [Se

一起谈.NET技术,数据库访问的性能问题与瓶颈问题

声明: 本文是一篇有争议的文章,甚至有可能是一篇争议非常大的文章,可能争来争去依然无法得到一个统一的意见. 场景 个别公司的技术决策者要求团队的开发人员在编写数据访问层的时候,禁止在程序中出现任何的SQL语句,禁止使用Entity Library,禁止使用NBear.NHibernate.IBatis.Entity Framework等ORM框架,只允许使用存储过程.试想一下,您的公司是否是这样子的?您的身边有没有这样的朋友,他们的公司存在这样或类似这样的情况吗? 矛盾点   对于开发人员来说,

一起谈.NET技术,Silverlight访问Apache服务器(Tomcat,Geronimo)中部署的Webservice

开发环境 Vs2010 . Silverlight4 . Java Jdk1.6 U 21 . Apache-tomcat-6.0.20 . Myeclipse8.5 . Apache-ant-1.8.1 . Axis2 . Geronimo-tomcat6-javaee5-2.2 下载地址: Apache-tomcat : http://apache.ziply.com/tomcat/ Apache-ant   : http://apache.ziply.com/ant/ Axis2 : ht

一起谈.NET技术,SilverLight调用WebService的方法

在我们添加Service Reference的时候,可能不知道该服务最终会被部署到什么位置,或者该服务可能被迁移,此时我们可以使用以下手段进行Service的调用,提高代码编写的灵活性. 步骤1:修改宿主Web页面的代码,将服务地址以初始化参数方式传入. <form id="form1" runat="server" style="height:100%">    <div id="silverlightControl

Flex与.NET互操作(三):基于WebService的数据访问(下)

在上一篇文章<Flex与.NET互操作(二):基于WebService的数据访问(上) >中介绍了通过<mx:WebService>标签来访问Webservice. 实际上我们也可以通过编程的方式动态的访问WebService,Flex SDK为我们提供了WebService类. 使用WebService类来访问WebService其实也就是将<mx:WebService>标签的属性通过类对象的属性形式来表示,相比之下使用 WebService类比使用<mx:We

Flash/Flex与.NET互操作(二):基于WebService的数据访问(上)

Flex提供了<mx:WebService>.<mx:HTTPService>和<mx:RemoteObject>标签来直接访问远程数据,这用于与各种不同语 言环境开发提供的远程服务端数据源(如WebService)进行数据交互通信显得更加容易. 本文以.NET平台下C#语言开发的WebService作为远程Webservice,详细介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService ,远程调用WebService方法,给WebS

基于WebService的数据访问(下) Flex与.NET互操作(三)_Flex

使用WebService类来访问WebService其实也就是将<mx:WebService>标签的属性通过类对象的属性形式来表示,相比之下使用WebService类比使用<mx:WebService>标签要灵活.下面我们来看看编程方式怎么连接和调用远程方法: 1     internal function onClick():void2     {3         var service:WebService = new WebService();4         servi