Gewusst wie: Anpassen von SOAP-Nachrichten mit der XML-Serialisierung
Der System.Web.Serialization-Namespace bietet zahlreiche Attribute zur Steuerung der XML-Serialisierung, die auf Parameter angewendet werden können und Werte von Webdienstmethoden zurückgeben. Dieses Thema zeigt die Verwendung des XmlElementAttribute-Attributs.
So geben Sie den Namen des XML-Elements an, das einen Parameter darstellt
Wenden Sie ein XmlElement-Attribut auf den Parameter an, das den gewünschten Namen für das Element und, optional, einen Namespace angibt, wenn die Parameterformatierung auf Literal festgelegt ist. Wenn die Parameterformatierung auf Encoded festgelegt wird, wenden Sie ein SoapElement-Attribut auf den Parameter an.
Im folgenden Codebeispiel wird erwartet, dass die Elementnamen, die die Parameter darstellen,
MyAddressElement
,MyZipElement
undReturnValueElement
lauten. Es wird außerdem erwartet, dass der Elementname, der den Rückgabewert darstellt,ReturnValueElement
lautet. Die Formatierung der Webdienstmethode im Beispiel ist Document, der Standard für 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
Der Webdienst erwartet die folgende SOAP-Anforderung. Beachten Sie, dass die Namen der Elemente im Gegensatz zu den Parameternamen mit den Angaben im XmlElement-Attribut übereinstimmen.
<?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>
Siehe auch
Referenz
System.Xml.Serialization Namespace
SoapDocumentMethodAttribute
SoapRpcMethodAttribute
SoapDocumentServiceAttribute
SoapRpcServiceAttribute
Konzepte
SOAP-Nachrichtenänderung mit SOAP-Erweiterungen
Erstellen von XML-Webdienstclients
Weitere Ressourcen
Anpassen der Formatierung von SOAP-Nachrichten
Introducing XML Serialization
XML-Webdienste, die ASP.NET verwenden
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.