次の方法で共有


SoapHeader クラス

定義

派生クラスでオーバーライドされると、SOAP ヘッダーの内容を表します。

public ref class SoapHeader abstract
public abstract class SoapHeader
type SoapHeader = class
Public MustInherit Class SoapHeader
継承
SoapHeader
派生

MyWebService の XML Web サービスは SOAP ヘッダーを MyHeader 定義し、XML Web サービス メソッドへの任意の MyWebMethod 呼び出しで送信する必要があります。 さらに、 MyWebMethod SOAP ヘッダー以外のすべての SOAP ヘッダーを MyHeader 受け取ります。

<%@ 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

注釈

SOAP ヘッダーは、データが XML Web サービス メソッドの主な機能に直接関連していない場合に、XML Web サービス メソッドとの間でデータを渡すためのメソッドを提供します。 たとえば、XML Web サービスには、それぞれがカスタム認証スキームを必要とする複数の XML Web サービス メソッドが含まれている場合があります。 カスタム認証スキームの各 XML Web サービス メソッドにパラメーターを追加する代わりに、 SoapHeaderAttribute派生 SoapHeaderクラスを参照する a を各 XML Web サービス メソッドに適用できます。 派生 SoapHeader クラスの実装は、カスタム認証スキームを処理します。 このように、XML Web サービス メソッドはそれに固有の機能のみを実装し、SOAP ヘッダーを使用して追加の機能を追加します。

次の一覧は、SOAP ヘッダーを受信して処理するための基本的な手順の概要を示しています。

  1. SOAP ヘッダーに渡されるデータを表すことから SoapHeader 派生するクラスを作成します。

  2. 最初の手順で作成した型の XML Web サービスまたは XML Web サービス クライアント プロキシ クラスを実装するクラスにメンバーを追加します。

  3. SoapHeaderAttributeプロパティの 2 番目の手順で作成されたメンバーを指定して、XML Web サービス メソッドまたはプロキシ クラスの対応するメソッドに a をMemberName適用します。

  4. XML Web サービス メソッドまたは XML Web サービス クライアント コード内で、プロパティに MemberName アクセスして SOAP ヘッダーで送信されたデータを処理します。

コンストラクター

SoapHeader()

SoapHeader クラスの新しいインスタンスを初期化します。

プロパティ

Actor

SOAP ヘッダーの受信者を取得または設定します。

DidUnderstand

XML Web サービス メソッドで SOAP ヘッダーを適切に処理したかどうかを示す値を取得または設定します。

EncodedMustUnderstand

SOAP Version 1.1 のプロトコルと通信するときに SOAP ヘッダーの mustUnderstand XML 属性の値を取得または設定します。

EncodedMustUnderstand12

SOAP Version 1.2 のプロトコルと通信するときに SOAP ヘッダーの mustUnderstand XML 属性の値を取得または設定します。

EncodedRelay

SOAP 1.2 ヘッダーの relay 属性を取得または設定します。

MustUnderstand

SoapHeader を認識する必要があるかどうかを示す値を取得または設定します。

Relay

現在のノードがヘッダーを認識しない場合に、SOAP ヘッダーを次の SOAP ノードに渡すかどうかを示す値を取得または設定します。

Role

SOAP ヘッダーの受信者を取得または設定します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください