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

简介:   上一篇介绍Flex的WebService的使用,可以调用多种类型的数据,都是直接调用,没有使用参数,本篇学习使用参数调用WebService,WebService的参数类型可以是:简单类型(如数值,字串串等),简单实体模型(只有属性),比较复杂的实体模型(内陷其他实体),以及集合,XML等。

  上一篇介绍Flex的WebService的使用,可以调用多种类型的数据,都是直接调用,没有使用参数,本篇学习使用参数调用WebService,WebService的参数类型可以是:简单类型(如数值,字串串等),简单实体模型(只有属性),比较复杂的实体模型(内陷其他实体),以及集合,XML等。

  Flex在调用不同后台实现的Web Method方式只是在构造参数有些区别,调用方式是一样的,以下简单介绍Flex调用.NET的Web Method使用不同参数。

      定义Web Method用到的类:

 
  
[Serializable]
public class Employee
{
public int id { get ; set ; }
public string name { get ; set ; }
public int age { get ; set ; }
}

[Serializable]
public class Dept
{
public int DeptID{ get ; set ; }
public string DeptName { get ; set ; }
public Employee[] Employees { get ; set ; }
}

  一、简单类型参数

      Web Method定义:

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

      Flex可以直接定义operation的时候定义requests:

 
 
<? 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.soap.mxml.Operation;
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 msg:String="ID:"+event.result.id+"\n"+
"Name:"+event.result.name+"\n"+
"Age:"+event.result.age;
Alert.show(msg);
}

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

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

< mx:Button label ="GetEmployee" click ="GetEmployee()" />

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

  运行结果:

image

  二、简单对象

  Web Method定义,模拟添加对象,Flex前端代码,参数名跟Web Method的参数名一样。

 
 
[WebMethod]
public int AddEmployee(Employee employee)
{
return 1 ;
}

  运行结果:

image

  跟踪Web Method的employee参数:

image

  三、对象数组

  Web Method定义,添加多个对象:

 
  
[WebMethod]
public int AddEmployees(Employee[] list)
{
return list.Length;
}

  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.soap.mxml.Operation;
import mx.collections.ArrayCollection;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function onResult(event:ResultEvent):void
{
Alert.show(event.result.toString());
}

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

private function AddEmployee():void
{
var empArr:Array=new Array();
empArr.push({id:0,name:"user1",age:22});
empArr.push({id:0,name:"user2",age:23});
empArr.push({id:0,name:"user3",age:25});

MyService.AddEmployees(empArr);
}
]]>
</ mx:Script >

< mx:Button label ="AddEmployee" click ="AddEmployee()" />

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

  运行结果: image

  四、复杂对象

  Web Method定义:

 
  
[WebMethod]
public int AddDept(Dept dept)
{
return 1 ;
}

  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.soap.mxml.Operation;
import mx.collections.ArrayCollection;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function onResult(event:ResultEvent):void
{
Alert.show(event.result.toString());
}

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

private function AddDept():void
{
var empArr:Array=new Array();
empArr.push({id:0,name:"user1",age:22});
empArr.push({id:0,name:"user2",age:23});
empArr.push({id:0,name:"user3",age:25});

var dept:Object=new Object();
dept.DeptID=1;
dept.DeptName="dept1";
dept.Employees=empArr;

MyService.AddDept(dept);
}
]]>
</ mx:Script >

< mx:Button label ="AddDept" click ="AddDept()" />

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

  运行结果:

image

目录
相关文章
|
17天前
|
人工智能 前端开发 开发工具
解读.NET 技术的开发潜力
本文全面介绍了.NET技术在软件开发领域的核心优势、创新应用及面临的挑战。.NET以其统一的开发平台、强大的工具和跨平台能力,成为企业级应用、Web应用乃至游戏开发的理想选择。然而,在性能优化、容器化及AI集成等方面仍需不断突破。通过积极拥抱开源和社区驱动模式,.NET将持续推动软件开发的进步。
36 1
|
1月前
|
监控 网络协议 API
.NET WebSocket 技术深入解析,你学会了吗?
【9月更文挑战第4天】WebSocket 作为一种全双工协议,凭借低延迟和高性能特点,成为实时应用的首选技术。.NET 框架提供了强大的 WebSocket 支持,使实时通信变得简单。本文介绍 WebSocket 的基本概念、.NET 中的使用方法及编程模型,并探讨其在实时聊天、监控、在线游戏和协同编辑等场景的应用,同时分享最佳实践,帮助开发者构建高效实时应用。
80 12
|
24天前
|
人工智能 前端开发 Devops
.NET技术自发布以来,在软件开发领域发挥了重要作用
【9月更文挑战第12天】.NET技术自发布以来,在软件开发领域发挥了重要作用。本文分为三部分探讨其在现代开发中的应用:首先介绍.NET的核心价值,包括语言多样性、强大的开发工具支持、丰富的类库、跨平台能力和活跃的社区;接着分析其在企业级应用、Web开发、移动应用、云服务及游戏开发中的实际应用;最后讨论.NET面临的挑战与未来趋势,如性能优化、容器化、AI集成及跨平台框架竞争等。通过不断的技术创新和社区驱动,.NET将持续推动软件开发的进步。
28 4
|
1月前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
66 6
|
28天前
|
人工智能 开发框架 算法
C#/.NET/.NET Core技术前沿周刊 | 第 2 期(2024年8.19-8.25)
C#/.NET/.NET Core技术前沿周刊 | 第 2 期(2024年8.19-8.25)
|
28天前
|
传感器 应用服务中间件 Linux
C#/.NET/.NET Core技术前沿周刊 | 第 3 期(2024年8.26-8.31)
C#/.NET/.NET Core技术前沿周刊 | 第 3 期(2024年8.26-8.31)
|
29天前
|
人工智能 算法 C#
C#/.NET/.NET Core技术前沿周刊 | 第 1 期(2024年8.12-8.18)
C#/.NET/.NET Core技术前沿周刊 | 第 1 期(2024年8.12-8.18)
|
2月前
|
Java Spring 自然语言处理
Spring 框架里竟藏着神秘魔法?国际化与本地化的奇妙之旅等你来揭开谜底!
【8月更文挑战第31天】在软件开发中,国际化(I18N)与本地化(L10N)对于满足不同地区用户需求至关重要。Spring框架提供了强大支持,利用资源文件和`MessageSource`实现多语言文本管理。通过配置日期格式和货币符号,进一步完善本地化功能。合理应用这些特性,可显著提升应用的多地区适应性和用户体验。
32 0
|
5月前
|
缓存 应用服务中间件 数据库
Python Web Service开发及优化
随着互联网的快速发展,Web服务已成为现代技术的核心。Python作为一种功能强大且易于学习的编程语言,在Web服务开发领域占据着重要地位。Python Web服务开发的重要性在于它能够提供高效、可扩展且易于维护的解决方案。本篇博客将探讨如何使用Python的Flask框架、Gunicorn WSGI服务器和Nginx网页服务器来实现高性能的Web服务。
|
5月前
|
XML Java 应用服务中间件
WebService - Axis2基于JAX-WS开发WebService并发布多个WebService
WebService - Axis2基于JAX-WS开发WebService并发布多个WebService
80 0
下一篇
无影云桌面