Udostępnij za pośrednictwem


SoapHeader.DidUnderstand Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy metoda usługi sieci Web XML prawidłowo przetworzyła nagłówek 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

Wartość właściwości

Boolean

true jeśli nagłówek SOAP został prawidłowo przetworzony; w przeciwnym razie false.

Przykłady

Następująca MyWebService usługa sieci Web XML definiuje MyHeader nagłówek SOAP i wymaga wysłania go z dowolnymi wywołaniami metody MyWebMethod usługi sieci Web XML. Ponadto otrzymuje MyWebMethod wszystkie nagłówki PROTOKOŁU SOAP inne niż MyHeader nagłówek PROTOKOŁU SOAP. W przypadku nagłówków PROTOKOŁU SOAP, które MyWebMethod mogą przetwarzać, DidUnderstand ustawiono wartość 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

Uwagi

W przypadku nagłówków PROTOKOŁU SOAP zdefiniowanych przez usługę sieci Web XML ASP.NET zakłada, że metoda usługi sieci Web XML prawidłowo przetworzyła nagłówek SOAP, ustawiając początkową wartość na DidUnderstand true. W przypadku nagłówków PROTOKOŁU SOAP, które nie są zdefiniowane przez usługę sieci Web XML, początkowa wartość to false. Jeśli ASP.NET wykryje nagłówki PROTOKOŁU SOAP przekazane do metody usługi sieci Web XML ustawione DidUnderstand na false wartość po powrocie metody, SoapHeaderException element zostanie zwrócony z powrotem do klienta usługi sieci Web XML zamiast wyników z metody usługi sieci Web XML.

Dotyczy

Zobacz też