SoapHeader.DidUnderstand Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que indica se um método de serviço Web XML processou corretamente um cabeçalho 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 da propriedade
true se o cabeçalho SOAP foi processado corretamente; caso contrário false.
Exemplos
O serviço Web XML a seguir MyWebService define o MyHeader cabeçalho SOAP e exige que ele seja enviado com todas as chamadas para o método de MyWebMethod serviço Web XML. Além disso, recebe todos os MyWebMethod cabeçalhos SOAP que não sejam o MyHeader cabeçalho SOAP. Para cabeçalhos SOAP que MyWebMethod podem processar, DidUnderstand é definido como 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
Comentários
Para cabeçalhos SOAP definidos por um serviço Web XML, ASP.NET pressupõe que o método de serviço Web XML processou corretamente o cabeçalho SOAP definindo o valor inicial como DidUnderstand true. Para cabeçalhos SOAP não definidos pelo serviço Web XML, o valor inicial é false. Se ASP.NET detectar cabeçalhos SOAP passados para um método de serviço Web XML com DidUnderstand definido para false depois que o método é retornado, um SoapHeaderException é jogado de volta para o cliente de serviço Web XML em vez dos resultados do método de serviço Web XML.