SoapHeader.DidUnderstand Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un valor que indica si un método de servicios Web XML procesó correctamente un encabezado 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
Valor de propiedad
Es true
si el encabezado SOAP se procesó correctamente; en caso contrario, es false
.
Ejemplos
El siguiente MyWebService
servicio web XML define el MyHeader
encabezado SOAP y requiere que se envíe con cualquier llamada al método de MyWebMethod
servicio web XML. Además, MyWebMethod
recibe los encabezados SOAP distintos del MyHeader
encabezado SOAP. En el caso de los encabezados SOAP que MyWebMethod
pueden procesarse, DidUnderstand se establece en 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
Comentarios
En el caso de los encabezados SOAP definidos por un servicio web XML, ASP.NET supone que el método de servicio web XML procesó correctamente el encabezado SOAP estableciendo el valor inicial de DidUnderstand en true
. En el caso de los encabezados SOAP no definidos por el servicio web XML, el valor inicial es false
. Si ASP.NET detecta encabezados SOAP pasados a un método de servicio web XML con DidUnderstand establecido false
en después de que el método devuelva, SoapHeaderException se devuelve al cliente del servicio web XML en lugar de los resultados del método de servicio web XML.