SoapHeaderAttribute Klasse

Definition

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 vererbt werden.

public ref class SoapHeaderAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true)]
public sealed class SoapHeaderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true)>]
type SoapHeaderAttribute = class
    inherit Attribute
Public NotInheritable Class SoapHeaderAttribute
Inherits Attribute
Vererbung
SoapHeaderAttribute
Attribute

Beispiele

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

<%@ 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;
       }
    }
}
<%@ 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

Hinweise

Die grundlegenden Schritte zum Empfangen und Verarbeiten eines SOAP-Headers sind:

  1. Erstellen Sie eine Klasse, die von SoapHeader der Darstellung der im SOAP-Header übergebenen Daten abgeleitet wird.

  2. Fügen Sie der XML-Webdienstklasse oder der XML-Webdienst-Clientproxyklasse des in Schritt 1 erstellten Typs ein Mitglied hinzu.

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

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

Weitere Informationen finden Sie in der MemberName -Eigenschaft.

Konstruktoren

SoapHeaderAttribute(String)

Initialisiert eine neue Instanz der SoapHeaderAttribute-Klasse, wobei der Member der XML-Webdienstklasse festgelegt wird, die den Inhalt des SOAP-Headers darstellt.

Eigenschaften

Direction

Ruft ab oder legt fest, ob der SOAP-Header für den XML-Webdienst oder den XML-Webdienstclient oder für beide bestimmt ist.

MemberName

Ruft den Member der XML-Webdienstklasse ab, die den Inhalt des SOAP-Headers darstellt, oder legt diesen Member fest.

Required
Veraltet.

Dieser Member ist veraltet und hat keine Funktion.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen