Compartir a través de


SoapHeader.DidUnderstand Propiedad

Definición

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

Boolean

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.

Se aplica a

Consulte también