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 ヘッダーの DidUnderstand が false に設定されていることをメソッドが返した後に ASP.NET で検出した場合は、XML Web サービス メソッドの結果ではなく SoapHeaderException が XML Web サービス クライアントにスローされます。
使用例
[Visual Basic, C#] MyWebService
XML Web サービスが MyHeader
SOAP ヘッダーを定義し、 MyWebMethod
XML Web サービス メソッドへの呼び出しと共に送信されるようにする例を次に示します。また、 MyWebMethod
が MyHeader
SOAP ヘッダー以外のすべての SOAP ヘッダーを受信します。 MyWebMethod
が処理できる SOAP ヘッダーの場合、 DidUnderstand は true に設定されています。
<%@ 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