SoapHeader-Klasse
Stellt beim Überschreiben in einer abgeleiteten Klasse den Inhalt eines SOAP-Headers dar.
Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)
Syntax
'Declaration
Public MustInherit Class SoapHeader
'Usage
Dim instance As SoapHeader
public abstract class SoapHeader
public ref class SoapHeader abstract
public abstract class SoapHeader
public abstract class SoapHeader
Hinweise
SOAP-Header bieten eine Methode zum Übergeben von Daten an eine XML-Webdienstmethode und zum Empfangen von Daten aus einer XML-Webdienstmethode, sofern die Daten nicht direkt mit der primären Funktion der XML-Webdienstmethode in Zusammenhang stehen. Ein XML-Webdienst kann z. B. mehrere XML-Webdienstmethoden enthalten, von denen jede ein benutzerdefiniertes Authentifizierungsschema erfordert. Anstatt in allen XML-Webdienstmethoden Parameter für das benutzerdefinierte Authentifizierungsschema hinzuzufügen, kann ein SoapHeaderAttribute auf die einzelnen XML-Webdienstmethoden angewendet werden, das auf eine vom SoapHeader abgeleitete Klasse verweist. Die Implementierung für die vom SoapHeader abgeleitete Klasse behandelt das benutzerdefinierte Authentifizierungsschema. Auf diese Art und Weise implementiert die XML-Webdienstmethode nur die für sie spezifischen Funktionen und fügt unter Verwendung eines SOAP-Headers zusätzliche Funktionen hinzu.
Die folgende Liste gibt eine Übersicht über die grundlegenden Schritte zum Empfangen und Verarbeiten eines SOAP-Headers:
Erstellen Sie eine von SoapHeader abgeleitete Klasse, die die an den SOAP-Header übergebenen Daten darstellt.
Fügen Sie der Klasse, die einen XML-Webdienst oder eine Proxyklasse eines XML-Webdienstclients implementiert, einen Member hinzu, der dem im ersten Schritt erstellten Typ entspricht.
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 im zweiten Schritt erstellten Member an.
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.
Beispiel
Vom folgenden XML-Webdienst MyWebService
wird der SOAP-Header MyHeader
definiert, und es wird festgelegt, dass dieser bei jedem Aufruf der XML-Webdienstmethode MyWebMethod
mitgesendet werden muss. Darüber hinaus empfängt MyWebMethod
alle SOAP-Header mit Ausnahme von MyHeader
.
<%@ 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
<%@ 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";
}
}
Vererbungshierarchie
System.Object
System.Web.Services.Protocols.SoapHeader
System.Web.Services.Protocols.SoapUnknownHeader
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
SoapHeader-Member
System.Web.Services.Protocols-Namespace
SoapUnknownHeader
SoapHeaderException
SoapHeaderAttribute
SoapHeaderDirection