Freigeben über


SoapRpcMethodAttribute-Klasse

Gibt an, dass die an die Methode und von dieser gesendeten SOAP-Nachrichten RPC-Formatierung verwenden.

Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.Method)> _
Public NotInheritable Class SoapRpcMethodAttribute
    Inherits Attribute
'Usage
Dim instance As SoapRpcMethodAttribute
[AttributeUsageAttribute(AttributeTargets.Method)] 
public sealed class SoapRpcMethodAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method)] 
public ref class SoapRpcMethodAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */ 
public final class SoapRpcMethodAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Method) 
public final class SoapRpcMethodAttribute extends Attribute

Hinweise

WSDL (Web Services Description Language) definiert zwei Stile für die Formatierung einer XML-Webdienstmethode (bzw. eines -Vorgangs) in einer SOAP-Nachricht: RPC und Document. Die RPC-Formatierung bezieht sich auf die Formatierung des Vorgangs gemäß der SOAP-Spezifikation für die Verwendung von SOAP für RPC in Abschnitt 7 der SOAP-Spezifikation. Die RPC-Formatierung gibt an, dass alle Parameter in einem einzigen nach der XML-Webdienstmethode benannten XML-Element gekapselt sind und dass jedes XML-Element innerhalb dieses XML-Elements einen Parameter darstellt, der nach dem jeweiligen Parameter benannt ist.

Mit SOAP-Nachrichten, die im RPC-Format und im Document-Format formatiert sind, kann die Kommunikation mit einem XML-Webdienst über Remoteprozeduraufrufe (RPC) ausgeführt werden. Das Document-Format kann aber auch für die Kommunikation über lose Verknüpfungen verwendet werden. Aus diesem Grund wird das Document-Format für XML-Webdienste empfohlen. Weitere Informationen finden Sie unter dem Thema Customizing SOAP Messages.

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 Proxyklasse auf dem Client angewendet werden. XML-Webdienstmethoden, deren OneWay-Eigenschaft auf true festgelegt ist, können nicht auf ihren HttpContext zugreifen. Daher wird beim Zugriff auf diese Eigenschaften der WebService-Klasse NULL (Nothing in Visual Basic) zurückgegeben.

Beispiel

Im folgenden Codebeispiel wird der Meldungsstil für die GetUserName-XML-Webdienstmethode auf Rpc festgelegt.

<%@ WebService Language="VB" class="MyUser" %>
Imports System
Imports System.Web.Services
Imports System.Web.Services.Protocols

Public Class MyUser
    Inherits WebService    
    
    <SoapRpcMethod(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
        
        ' Determine whether the user is part of a domain by searching for a backslash.
        pos = temp.IndexOf("\")
        
        ' Parse out the domain name from 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 {
 
       [ SoapRpcMethod(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;
 
           // Determine whether the user is part of a domain by searching for a backslash.
           pos = temp.IndexOf("\\");
           
           // Parse out the domain name from 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.SoapRpcMethodAttribute

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

SoapRpcMethodAttribute-Member
System.Web.Services.Protocols-Namespace
SoapDocumentMethodAttribute-Klasse
SoapRpcServiceAttribute
SoapDocumentServiceAttribute-Klasse