SoapHeader.DidUnderstand プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
XML Web サービス メソッドで SOAP ヘッダーを適切に処理したかどうかを示す値を取得または設定します。
public:
property bool DidUnderstand { bool get(); void set(bool value); };
public bool DidUnderstand { get; set; }
member this.DidUnderstand : bool with get, set
Public Property DidUnderstand As Boolean
プロパティ値
SOAP ヘッダーが適切に処理された場合は true
。それ以外の場合は false
。
例
次 MyWebService
の XML Web サービスは SOAP ヘッダーを MyHeader
定義し、XML Web サービス メソッドへの呼び出しと共に MyWebMethod
送信する必要があります。 さらに、 は MyWebMethod
SOAP ヘッダー以外の SOAP ヘッダーを MyHeader
受け取ります。 処理できる SOAP ヘッダーの MyWebMethod
場合、 DidUnderstand は に true
設定されます。
<%@ 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";
}
}
<%@ 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
注釈
XML Web サービスによって定義された SOAP ヘッダーの場合、ASP.NET は、 の初期値 DidUnderstand を に設定して、XML Web サービス メソッドが SOAP ヘッダーを適切に true
処理したと見なします。 XML Web サービスによって定義されていない SOAP ヘッダーの場合、初期値は です false
。 ASP.NET メソッドが戻った後に にfalse
設定された XML Web サービス メソッドDidUnderstandに渡された SOAP ヘッダーを検出すると、 SoapHeaderException は XML Web サービス メソッドの結果ではなく XML Web サービス クライアントにスローされます。
適用対象
こちらもご覧ください
.NET