Procedura: Formattazione del parametro di controllo e del valore restituito per un metodo di servizio Web
Per la formattazione di elementi XML che corrispondono a parametri del metodo e a valori restituiti, o utilizzi, WSDL (Web Services Description Language) fornisce due opzioni: SOAP codificate e letterali. .NET Framework controlla queste opzioni al livello di codice utilizzando gli attributi. Anche se ASP.NET fornisce un'architettura estesa per controllare come è formattato l'XML, l'ordine nel quale sono serializzati i parametri non è garantito.
Per specificare che il parametro di formattazione sia Literal
Applicare un attributo SoapDocumentMethod a un metodo nella classe proxy, impostando la proprietà Use su SoapBindingUse.Literal.
L'enumerazione SoapBindingUse specifica gli stili di formattazione dei parametri disponibili per un servizio Web creato utilizzando ASP.NET.
[SoapDocumentMethod( "https://www.contoso.com/DocumentLiteral", RequestNamespace="https://www.contoso.com", ResponseNamespace="https://www.contoso.com", Use=SoapBindingUse.Literal)] public string DocumentLiteral(Address1 address, bool useZipPlus4) {
<SoapDocumentMethod( _ "https://www.contoso.com/DocumentLiteral", _ RequestNamespace:="https://www.contoso.com", _ ResponseNamespace:="https://www.contoso.com", _ Use:=SoapBindingUse.Literal)> _ Public Function DocumentLiteral(ByVal address As Address1, _ ByVal useZipPlus4 As Boolean) As String
Segue la parte XML della richiesta SOAP al metodo del Servizio Web
DocumentLiteral
. I parametri risiedono all'interno dell'elemento Body e sono codificati come documenti XML autocontenuti, poiché si riferiscono a uno schema XSD.<?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> <DocumentLiteral xmlns="https://www.contoso.com"> <address> <Street>One Microsoft Way</Street> <City>Redmond</City> <Zip>98052</Zip> </address> <useZipPlus4>True</useZipPlus4> </DocumentLiteral> </soap:Body> </soap:Envelope>
Per specificare che il parametro di formattazione sia Encoded
Applicare un attributo SoapDocumentMethod o un attributo SoapRpcMethod al metodo nella classe proxy, impostando la proprietà Use su SoapBindingUse.Encoded.
A differenza dello stile di formattazione con parametro Literal, lo stile di formattazione con parametro Encoded può essere utilizzato con entrambi i metodi di formattazione stili del servizio Web. Per ulteriori informazioni sui metodi di formattazione stili dei servizio Web, vedere Supporto .NET Framework per i formati SOAP
[SoapDocumentMethod("https://www.contoso.com/DocumentEncoded", RequestNamespace="https://www.contoso.com", ResponseNamespace="https://www.contoso.com", Use=SoapBindingUse.Encoded)] public string DocumentEncoded(Address address, bool useZipPlus4) {
<SoapDocumentMethod("https://www.contoso.com/DocumentEncoded", _ RequestNamespace:="https://www.contoso.com", _ ResponseNamespace:="https://www.contoso.com", _ Use:=SoapBindingUse.Encoded)> _ Public Function DocumentEncoded(ByVal address As Address, _ ByVal useZipPlus4 As Boolean) As String
Segue la parte XML della richiesta SOAP al metodo del servizio
DocumentEncoded
. Notare come i parametri siano rappresentati in modo molto diverso dallo stile di formattazione Literal, poiché sono formattati utilizzando le regole di codifica delineate nella sezione 5 della specifica SOAP. Prestare particolare attenzione al parametroaddress
che non è un semplice tipo di dati.<?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:soapenc="https://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://www.contoso.com" xmlns:tnsTypes="https://www.contoso.com/encodedTypes" xmlns:wsdl="https://schemas.xmlsoap.org/wsdl/" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"> <soap:Body soap:encodingStyle="https://schemas.xmlsoap.org/soap/encoding/"> <tnsTypes:DocumentEncoded> <address href="#1" /> <useZipPlus4>boolean</useZipPlus4> </tnsTypes:DocumentEncoded> <tnsTypes:Address id="1"> <Street id="2">string</Street> <City id="3">string</City> <Zip id="4">string</Zip> </tnsTypes:Address> </soap:Body> </soap:Envelope>
Vedere anche
Riferimenti
SoapDocumentMethodAttribute
SoapRpcMethodAttribute
Altre risorse
Personalizzazione della formattazione dei messaggi SOAP
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.