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.