一起谈.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

目录
相关文章
|
11月前
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
|
16天前
|
网络协议 定位技术 网络安全
IPIP.NET-IP地理位置数据
IPIP.NET 是一家专注于 IP 地理位置数据的提供商,基于 BGP/ASN 数据与全球 800+ 网络监测点技术,提供高精度的 IPv4 和 IPv6 定位服务。其核心服务包括地理位置查询、详细地理信息和网络工具等,广泛应用于网络安全、广告营销、CDN 优化等领域。数据覆盖全球,支持多语言,每日更新确保实时性。IPIP.NET 提供 API 接口、离线数据库及多种语言 SDK,方便开发者集成使用。
105 0
|
6月前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
93 2
|
8月前
|
开发框架 .NET 数据库连接
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
136 1
|
9月前
|
开发框架 JSON 前端开发
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
|
8月前
|
开发框架 前端开发 算法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
139 0
|
8月前
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
109 0
|
10月前
|
C# 数据库 网络架构
技术经验分享:c#程序添加其他网站的webservice引用。
技术经验分享:c#程序添加其他网站的webservice引用。
130 0
|
11月前
|
存储 监控 BI
HIS系统是什么?一套前后端分离云HIS系统源码 接口技术RESTful API + WebSocket + WebService
医院管理信息系统(全称为Hospital Information System)即HIS系统。 常规模版包括门诊管理、住院管理、药房管理、药库管理、院长查询、电子处方、物资管理、媒体管理等,为医院管理提供更有力的保障。 HIS系统以财务信息、病人信息和物资信息为主线,通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为医院领导及各部门管理人员提供全面、准确的各种数据。 门诊医生工作站采用下拉式汉化菜单,界面友好,实用性强,设有与门诊挂号收费系统、医技科室信息系统、住院结算信息系统的软件接口。
269 1