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 ヘッダーの受信および処理の基本手順は次のとおりです。
- SOAP ヘッダーに渡されたデータを表す SoapHeader から派生したクラスを作成します。
- XML Web サービス クラスまたは XML Web サービス クライアント プロキシ クラスに手順 1 で作成した型のメンバを追加します。
- 手順 2 で作成したメンバを MemberName プロパティで指定して、XML Web サービス メソッドまたはプロキシ クラス内の対応するメソッドに SoapHeaderAttribute を適用します。
- 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