SoapHeader.DidUnderstand Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau menetapkan nilai yang menunjukkan apakah metode layanan Web XML memproses header SOAP dengan benar.
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
Nilai Properti
true jika header SOAP diproses dengan benar; jika tidak false.
Contoh
Layanan Web XML berikut MyWebService menentukan MyHeader header SOAP dan mengharuskannya dikirim dengan panggilan apa pun ke MyWebMethod metode layanan Web XML. Selain itu, MyWebMethod menerima header SOAP selain MyHeader header SOAP. Untuk header SOAP yang MyWebMethod dapat diproses, DidUnderstand diatur ke 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
Keterangan
Untuk header SOAP yang ditentukan oleh layanan Web XML, ASP.NET mengasumsikan metode layanan Web XML memproses header SOAP dengan benar dengan mengatur nilai awal DidUnderstand ke true. Untuk header SOAP yang tidak ditentukan oleh layanan Web XML, nilai awalnya adalah false. Jika ASP.NET mendeteksi header SOAP yang diteruskan ke metode layanan Web XML dengan DidUnderstand diatur ke false setelah metode kembali, SoapHeaderException dilemparkan kembali ke klien layanan Web XML alih-alih hasil dari metode layanan Web XML.