SoapHeader.DidUnderstand Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur indiquant si une méthode de service Web XML a correctement traité un en-tête 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
Valeur de propriété
true
si l'en-tête SOAP a été correctement traité ; sinon, false
.
Exemples
Le service Web XML suivant MyWebService
définit l’en-tête MyHeader
SOAP et exige qu’il soit envoyé avec tous les appels à la méthode de MyWebMethod
service Web XML. En outre, le MyWebMethod
reçoit tous les en-têtes SOAP autres que l’en-tête MyHeader
SOAP. Pour les en-têtes SOAP pouvant MyWebMethod
être traitées, DidUnderstand est défini sur 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
Remarques
Pour les en-têtes SOAP définis par un service Web XML, ASP.NET suppose que la méthode de service Web XML a correctement traité l’en-tête SOAP en définissant la valeur initiale de DidUnderstand sur true
. Pour les en-têtes SOAP non définis par le service Web XML, la valeur initiale est false
. Si ASP.NET détecte des en-têtes SOAP passés à une méthode de service Web XML avec DidUnderstand défini sur false
après le retour de la méthode, un SoapHeaderException est renvoyé au client du service Web XML au lieu des résultats de la méthode de service Web XML.