SoapHeader Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Erstellen Sie eine Klasse, die von SoapHeader der Darstellung der daten abgeleitet wird, die in den SOAP-Header übergeben werden.
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.
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.
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 |
EncodedMustUnderstand12 |
Ruft bei der Kommunikation mit dem SOAP-Protokoll, Version 1.2, den Wert des |
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) |