Freigeben über


SoapHeader Klasse

Definition

Stellt beim Überschreiben in einer abgeleiteten Klasse den Inhalt eines SOAP-Headers dar.

public ref class SoapHeader abstract
public abstract class SoapHeader
type SoapHeader = class
Public MustInherit Class SoapHeader
Vererbung
SoapHeader
Abgeleitet

Beispiele

Der folgende MyWebService XML-Webdienst definiert den MyHeader SOAP-Header und erfordert, dass er mit allen Aufrufen an die MyWebMethod XML-Webdienstmethode gesendet werden muss. MyWebMethod Darüber hinaus erhält jeder SOAP-Header, der andere als der MyHeader SOAP-Header ist.

<%@ WebService Language="C#" Class="MyWebService"%>
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml;
using System;

// Define a SOAP header by deriving from the SoapHeader base class.

public class MyHeader : SoapHeader {
    public string MyValue;
}

public class MyWebService {

    public MyHeader myHeader;
    // Receive all SOAP headers besides the MyHeader SOAP header.
    public SoapUnknownHeader[] unknownHeaders;
 
    [WebMethod]
    [SoapHeader("myHeader", Direction=SoapHeaderDirection.InOut)]

    //Receive any SOAP headers other than MyHeader.
    [SoapHeader("unknownHeaders",Required=false)]

    public string MyWebMethod() {

       foreach (SoapUnknownHeader header in unknownHeaders) {
           // Perform some processing on the header.
       if (header.Element.Name == "MyKnownHeader")
               header.DidUnderstand = true;
       else
                // For those headers that cannot be  
                // processed, set the DidUnderstand property to false.
                header.DidUnderstand = false;
       }
       return "Hello";
    }
}
<%@ WebService Language="VB" Class="MyWebService"%>

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml
Imports System

' Define a SOAP header by deriving from the SoapHeader base class.
Public Class MyHeader
    Inherits SoapHeader
    Public MyValue As String
End Class

Public Class MyWebService
    
    Public theHeader As MyHeader
    ' Receive all SOAP headers besides the MyHeader SOAP header.
    Public unknownHeaders() As SoapUnknownHeader    

    'Receive any SOAP headers other than MyHeader.    
    <WebMethod, _
     SoapHeader("theHeader", Direction := SoapHeaderDirection.InOut), _
     SoapHeader("unknownHeaders")> _
    Public Function MyWebMethod() As String
                
        Dim header As SoapUnknownHeader
        For Each header In unknownHeaders
            ' Perform some processing on the header.
            If header.Element.Name = "MyKnownHeader" Then
                header.DidUnderstand = True
            Else
                ' For those headers that cannot be
                ' processed, set the DidUnderstand propert to false.
                header.DidUnderstand = False
            End If
        Next header
        Return "Hello"
    End Function
    
End Class

Hinweise

SOAP-Header bieten eine Methode zum Übergeben von Daten an und aus einer XML-Webdienstmethode, wenn die Daten nicht direkt mit der primären Funktionalität der XML-Webdienstmethode verknüpft sind. Beispielsweise kann ein XML-Webdienst mehrere XML-Webdienstmethoden enthalten, die jeweils ein benutzerdefiniertes Authentifizierungsschema erfordern. Anstatt Parameter zu jeder XML-Webdienstmethode für das benutzerdefinierte Authentifizierungsschema hinzuzufügen, kann ein SoapHeaderAttributeVerweis auf eine Klasse, die von SoapHeadereiner klasse abgeleitet wird, auf jede XML-Webdienstmethode angewendet werden. Die Implementierung für die Klasse, die von der Benutzerdefinierten Authentifizierungsschema abgeleitet wird SoapHeader . Auf diese Weise implementiert die XML-Webdienstmethode nur die Funktionen, die für sie spezifisch sind, und fügt zusätzliche Funktionen mithilfe eines SOAP-Headers hinzu.

In der folgenden Liste werden die grundlegenden Schritte zum Empfangen und Verarbeiten eines SOAP-Headers beschrieben:

  1. Erstellen Sie eine Klasse, die von SoapHeader der Darstellung der daten abgeleitet wird, die in den SOAP-Header übergeben werden.

  2. Fügen Sie dem Kurs ein Mitglied hinzu, das einen XML-Webdienst oder eine XML-Webdienst-Clientproxyklasse implementiert, des Typs, der im ersten Schritt erstellt wurde.

  3. Wenden Sie eine SoapHeaderAttribute auf die XML-Webdienstmethode oder die entsprechende Methode in der Proxyklasse an, die das element angibt, das im zweiten Schritt in der MemberName Eigenschaft erstellt wurde.

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

Konstruktoren

SoapHeader()

Initialisiert eine neue Instanz der SoapHeader-Klasse.

Eigenschaften

Actor

Ruft den Empfänger des SOAP-Headers ab oder legt diesen fest.

DidUnderstand

Ruft einen Wert ab, der angibt, ob eine XML-Webdienstmethode einen SOAP-Header richtig verarbeitet hat, oder legt diesen Wert fest.

EncodedMustUnderstand

Ruft bei der Kommunikation mit dem SOAP-Protokoll, Version 1.1, den Wert des mustUnderstand-XML-Attributs für den SOAP-Header ab oder legt diesen fest.

EncodedMustUnderstand12

Ruft bei der Kommunikation mit dem SOAP-Protokoll, Version 1.2, den Wert des mustUnderstand-XML-Attributs für den SOAP-Header ab oder legt diesen fest.

EncodedRelay

Ruft das relay-Attribut des SOAP 1.2-Headers ab oder legt dieses fest.

MustUnderstand

Ruft einen Wert ab, der angibt, ob der SoapHeader verstanden werden muss, oder legt diesen fest.

Relay

Ruft einen Wert ab, der angibt, ob der SOAP-Header an den nächsten SOAP-Knoten weitergeleitet werden soll, wenn der aktuelle Knoten den Header nicht versteht.

Role

Ruft den Empfänger des SOAP-Headers ab oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
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)

Gilt für

Siehe auch