SoapHeader.DidUnderstand Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica se un metodo di servizio Web XML ha elaborato correttamente un'intestazione 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
Valore della proprietà
true
se l'intestazione SOAP è stata elaborata correttamente; in caso contrario, false
.
Esempio
Il servizio Web XML seguente MyWebService
definisce l'intestazione MyHeader
SOAP e richiede che venga inviato con qualsiasi chiamata al metodo del MyWebMethod
servizio Web XML. Inoltre, MyWebMethod
riceve eventuali intestazioni SOAP diverse dall'intestazione MyHeader
SOAP. Per le intestazioni SOAP che MyWebMethod
possono elaborare, DidUnderstand è impostata su 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
Commenti
Per le intestazioni SOAP definite da un servizio Web XML, ASP.NET presuppone che il metodo del servizio Web XML elabora correttamente l'intestazione SOAP impostando il valore iniziale di DidUnderstand su true
. Per le intestazioni SOAP non definite dal servizio Web XML, il valore iniziale è false
. Se ASP.NET rileva intestazioni SOAP passate a un metodo di servizio Web XML con DidUnderstand impostato su false
dopo che il metodo restituisce, viene SoapHeaderException restituito un valore al client del servizio Web XML anziché ai risultati del metodo del servizio Web XML.