次の方法で共有


SoapUnknownHeader クラス

SOAP ヘッダーから受信したデータのうち、受信側の XML Web サービスまたは XML Web サービス クライアントが認識できなかったデータを表します。このクラスは継承できません。

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

System.Object
   System.Web.Services.Protocols.SoapHeader
      System.Web.Services.Protocols.SoapUnknownHeader

NotInheritable Public Class SoapUnknownHeader
   Inherits SoapHeader
[C#]
public sealed class SoapUnknownHeader : SoapHeader
[C++]
public __gc __sealed class SoapUnknownHeader : public SoapHeader
[JScript]
public class SoapUnknownHeader extends SoapHeader

スレッドセーフ

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

解説

SOAP クライアントは、SOAP ヘッダーの形式の必須パラメータに加えられた追加データを使用して、XML Web サービスを呼び出すことがあります。ASP.NET で作成された XML Web サービスまたは XML Web サービス クライアントは、 SoapHeaderSoapHeaderSoapUnknownHeader の配列、または SoapUnknownHeader の配列の MemberName プロパティを使用して SoapHeaderAttribute を XML Web サービス メソッドに適用することにより、XML Web サービスの作成時には把握していなかった任意の SOAP ヘッダーを参照できます。 SoapUnknownHeaderType を指定すると、XML Web サービスは XmlElement の形式で SOAP ヘッダーの内容を表示できます。

使用例

[Visual Basic, C#] MyWebService XML Web サービスでは、 MyWebMethod XML Web サービス メソッドの呼び出しと共に送信される MyHeader SOAP ヘッダーを受け付け、処理します。また、 MyWebMethodMyHeader SOAP ヘッダー以外のすべての SOAP ヘッダーを受信します。

 
<%@ 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 myHeader As MyHeader
    
    ' Receive all SOAP headers besides the MyHeader SOAP header.
    Public unknownHeaders() As SoapUnknownHeader    

    'Receive any SOAP headers other than MyHeader.
    <WebMethod, _
    SoapHeader("myHeader", Direction := SoapHeaderDirection.InOut), _
    SoapHeader("unknownHeaders")> _
    Public Function MyWebMethod() As String
        Dim unknownHeaderAttributes As String = String.Empty
        
        ' Set myHeader.MyValue to some value.
        Dim header As SoapUnknownHeader
        For Each header In  unknownHeaders
            ' Perform some processing on the header.
            Dim attribute As XmlAttribute
            For Each attribute In header.Element.Attributes
                unknownHeaderAttributes &= attribute.Name & ":" & _
                    attribute.Value & ";"
            Next attribute
            ' For those headers that cannot be 
            ' processed, set the DidUnderstand property to false.
            header.DidUnderstand = False
        Next header
        
        Return unknownHeaderAttributes
        
    End Function
End Class


[C#] 
<%@ 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")]

    public string MyWebMethod() {

    string unknownHeaderAttributes = String.Empty;

        // Set myHeader.MyValue to some value.
         
       foreach (SoapUnknownHeader header in unknownHeaders) {
           // Perform some processing on the header.
           foreach (XmlAttribute attribute in header.Element.Attributes) {
              unknownHeaderAttributes = unknownHeaderAttributes + attribute.Name + ":" + attribute.Value + ";";            
           }
           // For those headers that cannot be 
           // processed, set the DidUnderstand property to false.
           header.DidUnderstand = false;
       }
       return unknownHeaderAttributes;
    }
}

[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 内)

参照

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