Freigeben über


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