在WebService方法中反回XML对象

来源:互联网 发布:网络聊天通讯软件 编辑:程序博客网 时间:2024/06/05 05:05

aspx页面

<asp:ScriptManager runat="server" ID="ScriptManager1" ScriptMode="Debug"><Services><asp:ServiceReference Path="Services/ReturnXmlService.asmx" InlineScript="true" /></Services></asp:ScriptManager><input type="button" value="GetXmlDocument" onclick="ReturnXmlService.GetXmlDocument(onSucceeded);" /><br /><br /><input type="button" value="GetXmlElement" onclick="ReturnXmlService.GetXmlElement(onSucceeded);" /><br /><br /><input type="button" value="GetEmployee" onclick="ReturnXmlService.GetEmployee(onSucceeded);" /><br /><br /><input type="button" value="GetXmlString" onclick="ReturnXmlService.GetXmlString(onSucceeded);" /><br /><br /><input type="button" value="GetSerializedString" onclick="ReturnXmlService.GetSerializedString(onSucceeded);" /><script language="javascript" type="text/javascript">function onSucceeded(result){alert(result.xml);}</script>

ReturnXmlService.asmx页面代码

<%@ WebService Language="C#" Class="ReturnXmlService" %>using System;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Web.Script.Services;using System.Xml;[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][ScriptService]public class ReturnXmlService  : System.Web.Services.WebService{    [WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Xml)]    public XmlNode GetXmlDocument(){XmlDocument doc = new XmlDocument();doc.LoadXml("<Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee>");return doc;    }[WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Xml)]public XmlNode GetXmlElement(){XmlDocument doc = new XmlDocument();doc.LoadXml("<Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee>");return doc.DocumentElement;}[WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Xml)]public Employee GetEmployee(){return new Employee("Jeffrey Zhao", 1000);}[WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Xml)]public string GetXmlString(){return "<Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee>";}[WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Xml, XmlSerializeString = true)]public string GetSerializedString(){return "<Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee>";}}

Employee.cs类

using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Xml.Serialization;/// <summary>/// Summary description for Employee/// </summary>public class Employee{public Employee(string name, int salary){this.Name = name;this.Salary = salary;}public Employee() { }[XmlAttribute]public string Name;[XmlIgnore]public int Salary;}