SoapHeader.DidUnderstand Propriété

Définition

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.

S’applique à

Voir aussi