SoapHeader 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在衍生類別中覆寫時,表示 SOAP 標頭的內容。
public ref class SoapHeader abstract
public abstract class SoapHeader
type SoapHeader = class
Public MustInherit Class SoapHeader
- 繼承
-
SoapHeader
- 衍生
範例
下列 MyWebService
XML Web 服務會 MyHeader
定義 SOAP 標頭,並要求它與 XML Web 服務方法的任何呼叫 MyWebMethod
一起傳送。 此外, MyWebMethod
接收 SOAP 標頭以外的 MyHeader
任何 SOAP 標頭。
<%@ 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
備註
如果資料與 XML Web 服務方法的主要功能不直接相關,SOAP 標頭會提供方法,以便將資料傳入 XML Web 服務方法或從 XML Web 服務方法傳遞資料。 例如,XML Web 服務可能包含數個 XML Web 服務方法,每個方法都需要自訂驗證配置。 除了將參數新增至自訂驗證配置的每個 XML Web 服務方法, SoapHeaderAttribute 而是參考衍生自 SoapHeader 的類別,可以套用至每個 XML Web 服務方法。 衍生自 SoapHeader 的 類別實作會處理自訂驗證配置。 如此一來,XML Web 服務方法只會實作它特有的功能,並使用 SOAP 標頭新增其他功能。
下列清單概述接收及處理 SOAP 標頭的基本步驟:
建立衍生自 SoapHeader 的類別,代表傳入 SOAP 標頭的資料。
將成員新增至實作 XML Web 服務或 XML Web 服務用戶端 Proxy 類別的 類別,該類別是在第一個步驟中建立的類型。
SoapHeaderAttribute將 套用至 XML Web 服務方法或 Proxy 類別中的對應方法,並指定在 屬性的第二個步驟中 MemberName 建立的成員。
在 XML Web 服務方法或 XML Web 服務用戶端程式代碼內,存取 MemberName 屬性來處理 SOAP 標頭中傳送的資料。
建構函式
SoapHeader() |
初始化 SoapHeader 類別的新執行個體。 |
屬性
Actor |
取得或設定 SOAP 標頭的收件者。 |
DidUnderstand |
取得或設定值,指出 XML Web Service 方法是否已適當地處理 SOAP 標頭。 |
EncodedMustUnderstand |
與 SOAP 通訊協定 1.1 版通訊時,取得或設定 SOAP 標頭的 |
EncodedMustUnderstand12 |
與 SOAP 通訊協定 1.2 版通訊時,取得或設定 SOAP 標頭的 |
EncodedRelay |
取得或設定 SOAP 1.2 標頭的轉送屬性。 |
MustUnderstand |
取得或設定值,指出是否必須辨認 SoapHeader。 |
Relay |
取得或設定值,指出如果目前節點無法辨認標頭,是否會將 SOAP 標頭轉送至下一個 SOAP 節點。 |
Role |
取得或設定 SOAP 標頭的收件者。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |