SoapDocumentMethodAttribute-Klasse
Durch die Anwendung von SoapDocumentMethodAttribute auf eine Methode wird angegeben, dass SOAP-Nachrichten an die bzw. von der Methode die Document-Formatierung verwenden.
Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)
Syntax
'Declaration
<AttributeUsageAttribute(AttributeTargets.Method)> _
Public NotInheritable Class SoapDocumentMethodAttribute
Inherits Attribute
'Usage
Dim instance As SoapDocumentMethodAttribute
[AttributeUsageAttribute(AttributeTargets.Method)]
public sealed class SoapDocumentMethodAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method)]
public ref class SoapDocumentMethodAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */
public final class SoapDocumentMethodAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Method)
public final class SoapDocumentMethodAttribute extends Attribute
Hinweise
WSDL (Web Services Description Language) definiert zwei Stile für die Formatierung einer auch als Vorgang bezeichneten XML-Webdienstmethode in einer SOAP-Nachricht RPC und Document. Document bezieht sich auf die Formatierung der XML-Webdienstmethode entsprechend einem XSD-Schema. Der Document-Stil bezieht sich auf die Formatierung des Body-Elements als eine Folge von einem oder mehreren Meldungsteilen nach dem Body-Element. Wie genau die jeweilige Meldung aufgeteilt wird, wird durch die Use-Eigenschaft und die ParameterStyle-Eigenschaft bestimmt. Die Use-Eigenschaft bestimmt, ob Parameter als Encoded oder als Literal formatiert werden. ParameterStyle legt fest, ob die Parameter innerhalb eines einzigen Meldungsteils nach dem Body-Element gekapselt sind oder ob jeder Parameter einen eigenen Meldungsteil darstellt.
Weitere Informationen finden Sie unter Anpassen der Formatierung von SOAP-Nachrichten.
Dieses Attribut kann sowohl für eine XML-Webdienstmethode auf dem Server als auch für eine Methode der Proxyklasse auf dem Client angewendet werden.
Beispiel
Im folgenden Codebeispiel wird der Meldungsstil für die GetUserName
-XML-Webdienstmethode auf Document festgelegt. Außerdem werden die XML-Elemente mit dem Body-Element für die SOAP-Anforderung und SOAP-Antwort jeweils auf GetUserNameRequest
bzw. GetUserNameResponse
festgelegt.
<%@ WebService Language="VB" class="MyUser" %>
Imports System
Imports System.Web.Services
Imports System.Web.Services.Protocols
Public Class MyUser
Inherits WebService
<SoapDocumentMethod(Action := "https://www.contoso.com/Sample", _
RequestNamespace := "https://www.contoso.com/Request", _
RequestElementName := "GetUserNameRequest", _
ResponseNamespace := "https://www.contoso.com/Response", _
ResponseElementName := "GetUserNameResponse"), _
WebMethod(Description := "Obtains the User Name")> _
Public Function GetUserName() As UserName
Dim temp As String
Dim pos As Integer
Dim NewUser As New UserName()
' Get the full user name, including the domain name if applicable.
temp = User.Identity.Name
' Deterime whether the user is part of a Domain by searching for a backslash.
pos = temp.IndexOf("\")
' Parse the domain name out of the string, if one exists.
If pos <= 0 Then
NewUser.Name = User.Identity.Name
Else
NewUser.Name = temp.Remove(0, pos + 1)
NewUser.Domain = temp.Remove(pos, temp.Length - pos)
End If
Return NewUser
End Function
End Class
Public Class UserName
Public Name As String
Public Domain As String
End Class
<%@ WebService Language="C#" class="MyUser" %>
using System;
using System.Web.Services;
using System.Web.Services.Protocols;
public class MyUser : WebService {
[ SoapDocumentMethod(Action="https://www.contoso.com/Sample",
RequestNamespace="https://www.contoso.com/Request",
RequestElementName="GetUserNameRequest",
ResponseNamespace="https://www.contoso.com/Response",
ResponseElementName="GetUserNameResponse")]
[ WebMethod(Description="Obtains the User Name") ]
public UserName GetUserName() {
string temp;
int pos;
UserName NewUser = new UserName();
// Get the full user name, including the domain name if applicable.
temp = User.Identity.Name;
// Deterime whether the user is part of a domain by searching for a backslash.
pos = temp.IndexOf("\\");
// Parse the domain name out of the string, if one exists.
if (pos <= 0)
NewUser.Name = User.Identity.Name;
else {
NewUser.Name = temp.Remove(0,pos+1);
NewUser.Domain = temp.Remove(pos,temp.Length-pos);
}
return NewUser;
}
}
public class UserName {
public string Name;
public string Domain;
}
Vererbungshierarchie
System.Object
System.Attribute
System.Web.Services.Protocols.SoapDocumentMethodAttribute
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
SoapDocumentMethodAttribute-Member
System.Web.Services.Protocols-Namespace
SoapDocumentServiceAttribute
SoapRpcMethodAttribute
SoapRpcServiceAttribute
SoapBindingUse-Enumeration
SoapParameterStyle