Freigeben über


SoapHeaderAttribute-Klasse

Dieses Attribut wird auf eine XML-Webdienstmethode oder einen XML-Webdienstclient angewendet, um einen SOAP-Header anzugeben, den die XML-Webdienstmethode bzw. der XML-Webdienstclient verarbeiten kann. Diese Klasse kann nicht geerbt werden.

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

Syntax

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

Hinweise

Die grundlegenden Schritte für das Empfangen und Verarbeiten eines SOAP-Headers lauten wie folgt:

  1. Erstellen Sie eine von SoapHeader abgeleitete Klasse, die die an den SOAP-Header übergebenen Daten darstellt.

  2. Fügen Sie der XML-Webdienstklasse bzw. der Proxyklasse des XML-Webdienstclients einen Member hinzu, der dem in Schritt 1 erstellten Typ entspricht.

  3. Wenden Sie ein SoapHeaderAttribute auf die XML-Webdienstmethode oder die entsprechende Methode in der Proxyklasse an, und geben Sie dabei in der MemberName-Eigenschaft den in Schritt 2 erstellten Member an.

  4. Greifen Sie im Code der XML-Webdienstmethode oder des XML-Webdienstclients auf die MemberName-Eigenschaft zu, um die im SOAP-Header gesendeten Daten zu verarbeiten.

Weitere Informationen finden Sie unter der MemberName-Eigenschaft.

Beispiel

Der folgende MyWebService-XML-Webdienst definiert einen SoapHeader vom Typ MyHeader. Die Hello-XML-Webdienstmethode erfordert, dass der Client die XML-Webdienstmethode mit diesem SoapHeader aufruft. Der Hello-XML-Webdienst fängt darüber hinaus alle anderen SOAP-Header als MyHeader ab.

<%@ WebService Language="VB" Class="MyWebService"%>
Imports System.Web.Services
Imports System.Web.Services.Protocols

' Define a SOAP header by deriving from the SoapHeader base class.
' The header contains just one string value.
Public Class MyHeader
    Inherits SoapHeader
    Public MyValue As String
End Class

Public Class MyWebService
    ' Member variable to receive the contents of the MyHeader SoapHeader.
    Public myHeader As MyHeader
    
    ' Member variable to receive all headers other than MyHeader.
    Public unknownHeaders() As SoapUnknownHeader
    
    ' Receive any SOAP headers other than MyHeader.
    <WebMethod, _
        SoapHeader("myHeader", Direction := SoapHeaderDirection.InOut), _
        SoapHeader("unknownHeaders")> _
    Public Sub Hello()        
        
        ' Process the MyHeader SoapHeader.
        If myHeader.MyValue = "Some string" Then
            ' Process the header.
        End If 
        Dim header As SoapHeader
        For Each header In  unknownHeaders
            ' Perform some processing on header
            ' For those headers that cannot be processed, 
            ' set the DidUnderstand to false.
            header.DidUnderstand = False
        Next header
    End Sub
End Class
<%@ WebService Language="C#" Class="MyWebService"%>
using System.Web.Services;
using System.Web.Services.Protocols;

// Define a SOAP header by deriving from the SoapHeader base class.
// The header contains just one string value.
public class MyHeader : SoapHeader {
    public string MyValue;
}

public class MyWebService {
    // Member variable to receive the contents of the MyHeader SoapHeader.
    public MyHeader myHeader;

    // Member variable to receive all headers other than MyHeader.
    public SoapUnknownHeader[] unknownHeaders;
 
    [WebMethod]
    [SoapHeader("myHeader", Direction=SoapHeaderDirection.InOut)]

    // Receive any SOAP headers other than MyHeader.
    [SoapHeader("unknownHeaders")]
    public void Hello() {

       // Process the MyHeader SoapHeader.
       if (myHeader.MyValue == "Some string") {
          // Process the header.
       }
       foreach (SoapHeader header in unknownHeaders) {
           // Perform some processing on header.
           
           // For those headers that cannot be processed,
           // set the DidUnderstand property to false.
           header.DidUnderstand = false;
       }
    }
}

Vererbungshierarchie

System.Object
   System.Attribute
    System.Web.Services.Protocols.SoapHeaderAttribute

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

SoapHeaderAttribute-Member
System.Web.Services.Protocols-Namespace
MemberName
SoapHeader-Klasse