共用方式為


SoapHeader 類別

定義

在衍生類別中覆寫時,表示 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 標頭的基本步驟:

  1. 建立衍生自 SoapHeader 的類別,代表傳入 SOAP 標頭的資料。

  2. 將成員新增至實作 XML Web 服務或 XML Web 服務用戶端 Proxy 類別的 類別,該類別是在第一個步驟中建立的類型。

  3. SoapHeaderAttribute將 套用至 XML Web 服務方法或 Proxy 類別中的對應方法,並指定在 屬性的第二個步驟中 MemberName 建立的成員。

  4. 在 XML Web 服務方法或 XML Web 服務用戶端程式代碼內,存取 MemberName 屬性來處理 SOAP 標頭中傳送的資料。

建構函式

SoapHeader()

初始化 SoapHeader 類別的新執行個體。

屬性

Actor

取得或設定 SOAP 標頭的收件者。

DidUnderstand

取得或設定值,指出 XML Web Service 方法是否已適當地處理 SOAP 標頭。

EncodedMustUnderstand

與 SOAP 通訊協定 1.1 版通訊時,取得或設定 SOAP 標頭的 mustUnderstand XML 屬性值。

EncodedMustUnderstand12

與 SOAP 通訊協定 1.2 版通訊時,取得或設定 SOAP 標頭的 mustUnderstand XML 屬性值。

EncodedRelay

取得或設定 SOAP 1.2 標頭的轉送屬性。

MustUnderstand

取得或設定值,指出是否必須辨認 SoapHeader

Relay

取得或設定值,指出如果目前節點無法辨認標頭,是否會將 SOAP 標頭轉送至下一個 SOAP 節點。

Role

取得或設定 SOAP 標頭的收件者。

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱