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

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

  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 >

  运行结果:

image

  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 >  

  运行结果:

image

  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 >

  运行结果: image

目录
相关文章
|
15天前
|
机器学习/深度学习 人工智能 Cloud Native
洞察.NET 技术的前沿应用
【7月更文挑战第4天】**洞察.NET技术前沿:.NET Core跨平台崛起,云原生与AI应用深化。ML.NET、TensorFlow.NET助力机器学习,Xamarin与MAUI统一跨平台UI。Azure云服务支持下,.NET引领软件开发新趋势。**
26 5
|
15天前
|
人工智能 物联网 开发工具
.NET技术:多元语言、丰富库与跨平台能力引领软件开发新纪元。
`【7月更文挑战第4天】.NET技术:多元语言、丰富库与跨平台能力引领软件开发新纪元。从企业应用、云服务到游戏开发,其角色日益凸显。随着微软的持续创新与社区合作,未来.NET将在物联网、AI等领域拓宽应用,开发者应把握趋势,共创未来。`
18 0
|
15天前
|
人工智能 开发框架 Devops
.NET技术概览:** 本文探讨了.NET的核心特性,包括多语言支持、Common Language Runtime、丰富的类库和跨平台能力,强调其在企业级、Web、移动及游戏开发中的应用。
【7月更文挑战第4天】.NET技术概览:** 本文探讨了.NET的核心特性,包括多语言支持、Common Language Runtime、丰富的类库和跨平台能力,强调其在企业级、Web、移动及游戏开发中的应用。此外,讨论了.NET如何通过性能优化、DevOps集成、AI与ML支持以及开源策略应对未来挑战,为开发者提供强大工具,共创软件开发新篇章。
20 3
|
15天前
|
人工智能 前端开发 开发工具
**.NET技术概览:** 本文探讨.NET的核心优势
【7月更文挑战第4天】**.NET技术概览:** 本文探讨了.NET的核心优势,如统一开发平台、Visual Studio的强大工具、跨平台能力及丰富的类库。它在现代应用中的创新应用包括企业级、Web、移动、云服务和游戏开发。同时,面对性能优化、容器化、AI集成等挑战,.NET正寻求未来机遇,通过开源社区持续发展。开发者应抓住这些趋势,利用.NET推动软件创新。
22 1
|
15天前
|
人工智能 前端开发 Devops
NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。
【7月更文挑战第4天】**.NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。实际应用涵盖企业系统、Web、移动和游戏开发,以及云服务。面对性能挑战、容器化、AI集成及跨平台竞争,.NET持续创新,开发者应关注技术趋势,提升技能,并参与社区,共同推进技术发展。**
15 1
|
15天前
|
机器学习/深度学习 人工智能 开发者
.NET 技术:为开发带来新机遇
【7月更文挑战第4天】**.NET技术开启软件开发新篇章,通过跨平台革命(.NET Core, Xamarin, .NET MAUI)、云服务与微服务(Azure, DevOps, Docker)及AI集成(ML.NET, 认知服务, TensorFlow)为开发者创造新机遇。开源社区的繁荣与性能提升使.NET更具竞争力,推动智能应用的创新与发展。开发者需紧跟潮流,利用这些工具和框架构建高效、创新的解决方案。**
15 1
|
15天前
|
人工智能 前端开发 开发工具
.NET技术探析:优势、创新应用及挑战。
【7月更文挑战第4天】**.NET技术探析:优势、创新应用及挑战。本文分三部分展开,阐述了.NET作为统一多语言开发平台的核心优势,如强大的Visual Studio工具、跨平台能力与丰富的类库;探讨了其在企业级、Web、移动及游戏开发中的创新角色;并指出面临性能优化、容器化、AI集成等挑战及未来开源社区驱动的发展机遇。通过理解与应对,开发者可借助.NET推动软件开发进步。**
19 0
|
22天前
|
XML 机器学习/深度学习 移动开发
技术笔记:log4net使用详解
技术笔记:log4net使用详解
19 0
|
22天前
|
存储 安全 C#
技术心得记录:强命名的延迟与关联在.net程序集保护中的作用及其逆向方法
技术心得记录:强命名的延迟与关联在.net程序集保护中的作用及其逆向方法
|
22天前
|
存储 JSON NoSQL
技术心得记录:在.NETCore中使用CSRedis
技术心得记录:在.NETCore中使用CSRedis
13 0