如何:使用 XML 序列化自定义 SOAP 消息
System.Web.Serialization 命名空间提供了大量用于控制 XML 序列化且适用于 Web 服务方法的参数和返回值的属性。 本主题演示如何使用 XmlElementAttribute 属性。
指定表示某个参数的 XML 元素的名称
向该参数应用 XmlElement 属性,此属性可为元素指定所需的名称,如果该参数的格式设置为 Literal,它还可以指定命名空间的名称。 如果该参数的格式设置为 Encoded,则应向该参数应用 SoapElement 属性。
下面的代码示例要求表示参数的元素名称为
MyAddressElement
、MyZipElement
和ReturnValueElement
。 此外,它还要求表示返回值的元素名称为ReturnValueElement
。 在该示例中,Web 服务方法的格式为 Document,这是 ASP.NET 的默认设置。<%@ WebService Language="C#" Class="SoapDocumentServiceSample" %> using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Serialization; [WebService(Namespace="https://www.contoso.com")] public class SoapDocumentServiceSample { [ WebMethod ] [ return: XmlElement("ReturnValueElement",IsNullable=false)] public Address ValidateAddress( [XmlElement("MyAddressElement")] Address MyAddress, [XmlElement("MyZipElement")] bool useZipPlus4) { useZipPlus4 = true; return new Address(); } }
<%@ WebService Language="VB" Class="SoapDocumentServiceSample" %> Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.Xml.Serialization <WebService(Namespace := "https://www.contoso.com")> _ Public Class SoapDocumentServiceSample < WebMethod > _ Public Function ValidateAddress( _ <XmlElement("MyAddressElement")> MyAddress As Address, _ <XmlElement("MyZipElement")> useZipPlus4 As Boolean) As <XmlElement("ReturnValueElement",IsNullable :=false)> _ Address useZipPlus4 = True Return new Address() End Function End Class
Web 服务应收到以下 SOAP 请求。 请注意元素名称与 XmlElement 属性中指定的哪些内容匹配,它们与参数名称之间存在哪些差别。
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ValidateAddress xmlns="http://tempuri.org/"> <MyAddressElement> <Street>string</Street> <City>string</City> <Zip>string</Zip> </MyAddressElement> <MyZipElement>boolean</MyZipElement> </ValidateAddress> </soap:Body> </soap:Envelope>
请参见
参考
System.Xml.Serialization Namespace
SoapDocumentMethodAttribute
SoapRpcMethodAttribute
SoapDocumentServiceAttribute
SoapRpcServiceAttribute
概念
使用 SOAP 扩展修改 SOAP 消息
生成 XML Web services 客户端
其他资源
自定义 SOAP 消息的格式设置
Introducing XML Serialization
使用 ASP.NET 的 XML Web services
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。