复杂数据类型使用基础 •公有属性或公有Field会被释放和接受 •容器对象 –实现IList接口的对象 –实现IDictionary接口的对象 •Key必须是String WebService2.cs Code: using System; using System.Collections; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Web.Script.Services; /// <summary> ///WebService2 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService] public class WebService2 : System.Web.Services.WebService { public WebService2 () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public Employee HelloWorld(Employee employee) { employee.salary = employee.salary * 2; return employee; } [WebMethod] public System.Collections.Generic.List<int> ReList(System.Collections.Generic.List<int> list) { list.Reverse(); return list; } [WebMethod] public System.Collections.Generic.IDictionary<string, Employee> GetEmployee() { System.Collections.Generic.Dictionary<string, Employee> employee = new System.Collections.Generic.Dictionary<string, Employee>(); Employee employee1 = new Employee(); employee1.fristname = "churen"; employee1.lastname = "youzi"; employee1.salary = 10000; employee[employee1.fullname] = employee1; Employee employee2 = new Employee(); employee2.fristname = "youzi"; employee2.lastname = "churen"; employee2.salary = 20000; employee[employee2.fullname] = employee2; return employee; } } Default4.aspx Code: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager runat=server ID="sc"> <Services> <asp:ServiceReference Path="WebService2.asmx" /> </Services> </asp:ScriptManager> <input type=button value="GetEmployee" οnclick="GetEmployee()"/> <input type=button value="GetList" οnclick="GetList([1,2,3,4,5,6,7,8,9])"/> <input type=button value="GetEmloyeebydic" οnclick="GetEmloyeebydic()"/> <mce:script language=javascript type="text/javascript"><!-- function GetEmployee() { var employee=new Object(); employee.fristname="churen"; employee.lastname="youzi"; employee.salary=2000; WebService2.HelloWorld(employee,GetResult); } function GetResult(employee) { var message=String.format("Firstname:{0}/nLastName:{1}/nFullName:{2}/nSalary:{3}", employee.fristname, employee.lastname, employee.fullname, employee.salary ); alert(message); } function GetList(list) { WebService2.ReList(list,function(relist){alert(relist);}); } function GetEmloyeebydic() { WebService2.GetEmployee(GetEmployDic); } function GetEmployDic(dic) { for(var fullname in dic) { alert(String.format("My Name:{0}/n Salary:{1}", fullname, dic[fullname].salary )); } } // --></mce:script> </form> </body> </html> 参考:ASP.NET AJAX深入浅出系列课程