SoapHeader.DidUnderstand Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of een XML-webservicemethode een SOAP-header correct heeft verwerkt.
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
Waarde van eigenschap
true als de SOAP-header correct is verwerkt; anders false.
Voorbeelden
De volgende MyWebService XML-webservice definieert de MyHeader SOAP-header en vereist dat deze wordt verzonden met alle aanroepen naar de MyWebMethod XML-webservicemethode. Daarnaast ontvangt de MyWebMethod SOAP-headers andere SOAP-headers dan de MyHeader SOAP-header. Voor SOAP-headers die MyWebMethod kunnen worden verwerkt, DidUnderstand is ingesteld op 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
Opmerkingen
Voor SOAP-headers die zijn gedefinieerd door een XML-webservice, gaat ASP.NET ervan uit dat de XML-webservicemethode de SOAP-header correct heeft verwerkt door de initiƫle waarde van DidUnderstand in te stellen op true. Voor SOAP-headers die niet zijn gedefinieerd door de XML-webservice, is falsede oorspronkelijke waarde. Als ASP.NET SOAP-headers detecteert die zijn doorgegeven aan een XML-webservicemethode met DidUnderstand ingesteld op false nadat de methode is geretourneerd, wordt er een SoapHeaderException teruggezet naar de XML-webserviceclient in plaats van de resultaten van de XML-webservicemethode.