Condividi tramite


SoapHeader.DidUnderstand Proprietà

Definizione

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.

Si applica a

Vedi anche