次の方法で共有


SoapHeader.DidUnderstand プロパティ

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

Public Property DidUnderstand As Boolean
[C#]
public bool DidUnderstand {get; set;}
[C++]
public: __property bool get_DidUnderstand();public: __property void set_DidUnderstand(bool);
[JScript]
public function get DidUnderstand() : Boolean;public function set DidUnderstand(Boolean);

プロパティ値

SOAP ヘッダーが適切に処理された場合は true 。それ以外の場合は false

解説

XML Web サービスで定義されている SOAP ヘッダーの場合、ASP.NET では XML Web サービス メソッドが SOAP ヘッダーを適切に処理したことを前提として DidUnderstand の初期値を true に設定します。XML Web サービスで定義されていない SOAP ヘッダーの場合、初期値は false になります。XML Web サービス メソッドに渡された SOAP ヘッダーの DidUnderstandfalse に設定されていることをメソッドが返した後に ASP.NET で検出した場合は、XML Web サービス メソッドの結果ではなく SoapHeaderException が XML Web サービス クライアントにスローされます。

使用例

[Visual Basic, C#] MyWebService XML Web サービスが MyHeader SOAP ヘッダーを定義し、 MyWebMethod XML Web サービス メソッドへの呼び出しと共に送信されるようにする例を次に示します。また、 MyWebMethodMyHeader SOAP ヘッダー以外のすべての SOAP ヘッダーを受信します。 MyWebMethod が処理できる SOAP ヘッダーの場合、 DidUnderstandtrue に設定されています。

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


[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",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";
    }
}

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

必要条件

プラットフォーム: 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

参照

SoapHeader クラス | SoapHeader メンバ | System.Web.Services.Protocols 名前空間 | MustUnderstand | SoapHeaderException