六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 25|回复: 0

[2011-04] Flex调用C# Webservice

[复制链接]

升级  43.2%

222

主题

222

主题

222

主题

进士

Rank: 4

积分
716
 楼主| 发表于 2013-1-26 14:42:05 | 显示全部楼层 |阅读模式
关键字: flex数据交互 终于试出flex用WebService的方式取得组件的数据系结。后端用Turbo C#开新WebService专案,贴上下面二个简单的MethodC#代码  1.[WebMethod]   2.public string [] HelloWorld()   3.{   4. string [] arr=new string[3];   5. arr[0]="字符串A";   6. arr[1]="字符串二";   7. arr[2]="字符串三";   8. return arr;   9.}   10.[WebMethod]   11.public double Calc(double r)    12.{   13. return 2 * r * Math.PI;   14.}  [WebMethod]public string [] HelloWorld(){ string [] arr=new string[3]; arr[0]="字符串A"; arr[1]="字符串二"; arr[2]="字符串三"; return arr;}[WebMethod]public double Calc(double r) { return 2 * r * Math.PI;} 然后用 Cassini web server方式执行。前端用flex MXML Application贴上下面程序代码Mxml代码  1.<?xml version="1.0" encoding="utf-8"?>   2.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">   3. <mx:Script>   4.  <![CDATA[   5.   import mx.collections.ArrayCollection;   6.   import mx.rpc.events.ResultEvent;   7.      8.   [Bindable]   9.   private var myData:ArrayCollection;   10.      11.   private function resultHandler(event:ResultEvent):void {   12.    myData = event.result as ArrayCollection;   13.   }   14.  ]]>   15. </mx:Script>   16. <mx:WebService id="myService"  17.  wsdl="http://127.0.0.1:8080/WebServiceApplication3/WebService1.asmx?wsdl">   18.  <mx:operation name="HelloWorld" result="resultHandler(event)"/>    19.  <mx:operation name="Calc">   20.            <mx:request>   21.                <r>{radius.text}</r>   22.            </mx:request>   23.        </mx:operation>   24. </mx:WebService>   25.    26. <mx:List id="myList" dataProvider="{myData}" width="206"/>   27. <mx:Label text="{myList.selectedItem}"/>   28. <mx:TextInput id="radius"/>   29. <mx:Button label="取得数组" click="myService.HelloWorld.send()"/>   30.    <mx:Text text="{myService.Calc.lastResult}" />   31.    <mx:Button label="计算" click="myService.Calc.send();"/>    32.</mx:Application>  <?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Script>  <![CDATA[   import mx.collections.ArrayCollection;   import mx.rpc.events.ResultEvent;      [Bindable]   private var myData:ArrayCollection;      private function resultHandler(event:ResultEvent):void {    myData = event.result as ArrayCollection;   }  ]]> </mx:Script> <mx:WebService id="myService"  wsdl="http://127.0.0.1:8080/WebServiceApplication3/WebService1.asmx?wsdl">  <mx:operation name="HelloWorld" result="resultHandler(event)"/>   <mx:operation name="Calc">            <mx:request>                <r>{radius.text}</r>            </mx:request>        </mx:operation> </mx:WebService>  <mx:List id="myList" dataProvider="{myData}" width="206"/> <mx:Label text="{myList.selectedItem}"/> <mx:TextInput id="radius"/> <mx:Button label="取得数组" click="myService.HelloWorld.send()"/>    <mx:Text text="{myService.Calc.lastResult}" />    <mx:Button label="计算" click="myService.Calc.send();"/> </mx:Application> 执行之后,便用WebService方式向后端取得HelloWorld及Calc二个method的回传值。关键点在lastResult若是数组需以as ArrayCollection转型成ArrayCollection来承接。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表