次の方法で共有


SoapHeaderAttribute クラス

この属性は、XML Web サービス メソッドまたは XML Web サービス クライアントに適用され、XML Web サービス メソッドまたは XML Web サービス クライアントが処理できる SOAP ヘッダーを指定します。このクラスは継承できません。

この型のすべてのメンバの一覧については、SoapHeaderAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.Web.Services.Protocols.SoapHeaderAttribute

<AttributeUsage(AttributeTargets.Method)>
NotInheritable Public Class SoapHeaderAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Method)]
public sealed class SoapHeaderAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Method)]
public __gc __sealed class SoapHeaderAttribute : public Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.Method)
class SoapHeaderAttribute extends Attribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

SOAP ヘッダーの受信および処理の基本手順は次のとおりです。

  1. SOAP ヘッダーに渡されたデータを表す SoapHeader から派生したクラスを作成します。
  2. XML Web サービス クラスまたは XML Web サービス クライアント プロキシ クラスに手順 1 で作成した型のメンバを追加します。
  3. 手順 2 で作成したメンバを MemberName プロパティで指定して、XML Web サービス メソッドまたはプロキシ クラス内の対応するメソッドに SoapHeaderAttribute を適用します。
  4. XML Web サービス メソッドまたは XML Web サービス クライアント コード内で、 MemberName プロパティにアクセスし、SOAP ヘッダーに送信されたデータを処理します。

詳細については、 MemberName プロパティのトピックを参照してください。

使用例

[Visual Basic, C#] MyHeader 型の 1 つの SoapHeader を定義する MyWebService XML Web サービスを次に示します。 Hello XML Web サービス メソッドは、クライアントがこの SoapHeader で XML Web サービス メソッドを呼び出すことを要求します。 Hello XML Web サービスは、 MyHeader 以外の任意の SOAP ヘッダーも受け取ります。

 
<%@ WebService Language="VB" Class="MyWebService"%>
Imports System.Web.Services
Imports System.Web.Services.Protocols

' Define a SOAP header by deriving from the SoapHeader base class.
' The header contains just one string value.
Public Class MyHeader
    Inherits SoapHeader
    Public MyValue As String
End Class

Public Class MyWebService
    ' Member variable to receive the contents of the MyHeader SoapHeader.
    Public myHeader As MyHeader
    
    ' Member variable to receive all headers other than MyHeader.
    Public unknownHeaders() As SoapUnknownHeader
    
    ' Receive any SOAP headers other than MyHeader.
    <WebMethod, _
        SoapHeader("myHeader", Direction := SoapHeaderDirection.InOut), _
        SoapHeader("unknownHeaders")> _
    Public Sub Hello()        
        
        ' Process the MyHeader SoapHeader.
        If myHeader.MyValue = "Some string" Then
            ' Process the header.
        End If 
        Dim header As SoapHeader
        For Each header In  unknownHeaders
            ' Perform some processing on header
            ' For those headers that cannot be processed, 
            ' set the DidUnderstand to false.
            header.DidUnderstand = False
        Next header
    End Sub
End Class


[C#] 
<%@ WebService Language="C#" Class="MyWebService"%>
using System.Web.Services;
using System.Web.Services.Protocols;

// Define a SOAP header by deriving from the SoapHeader base class.
// The header contains just one string value.
public class MyHeader : SoapHeader {
    public string MyValue;
}

public class MyWebService {
    // Member variable to receive the contents of the MyHeader SoapHeader.
    public MyHeader myHeader;

    // Member variable to receive all headers other than MyHeader.
    public SoapUnknownHeader[] unknownHeaders;
 
    [WebMethod]
    [SoapHeader("myHeader", Direction=SoapHeaderDirection.InOut)]

    // Receive any SOAP headers other than MyHeader.
    [SoapHeader("unknownHeaders")]
    public void Hello() {

       // Process the MyHeader SoapHeader.
       if (myHeader.MyValue == "Some string") {
          // Process the header.
       }
       foreach (SoapHeader header in unknownHeaders) {
           // Perform some processing on header.
           
           // For those headers that cannot be processed,
           // set the DidUnderstand property to false.
           header.DidUnderstand = false;
       }
    }
}

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Web.Services.Protocols

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System.Web.Services (System.Web.Services.dll 内)

参照

SoapHeaderAttribute メンバ | System.Web.Services.Protocols 名前空間 | MemberName | SoapHeader