MessageHeaderAttribute.MustUnderstand Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt an, ob der Knoten, der in der Actor-Rolle verwendet wird, diesen Header verstehen muss. Dies wird dem SOAP-Headerattribut mustUnderstand
zugeordnet.
public:
property bool MustUnderstand { bool get(); void set(bool value); };
public bool MustUnderstand { get; set; }
member this.MustUnderstand : bool with get, set
Public Property MustUnderstand As Boolean
Eigenschaftswert
true
, wenn der Knoten, der in der Actor-Rolle verwendet wird, diesen Header verstehen muss, andernfalls false
.
Beispiele
Anhand des folgenden Codebeispiels wird veranschaulicht, wie MessageHeaderAttribute zum Erstellen eines SOAP-Headers für die Antwortnachricht mit den Eigenschaften Name, Namespace und MustUnderstand verwendet wird, für die für diesen Header geeignete Werte festgelegt wurden. Dem Codebeispiel folgt ein Beispiel der gesendeten Nachricht.
[MessageContract]
public class HelloResponseMessage
{
private string localResponse = String.Empty;
private string extra = String.Empty;
[MessageBodyMember(
Name = "ResponseToGreeting",
Namespace = "http://www.examples.com")]
public string Response
{
get { return localResponse; }
set { localResponse = value; }
}
[MessageHeader(
Name = "OutOfBandData",
Namespace = "http://www.examples.com",
MustUnderstand=true
)]
public string ExtraValues
{
get { return extra; }
set { this.extra = value; }
}
/*
The following is the response message, edited for clarity.
<s:Envelope>
<s:Header>
<a:Action s:mustUnderstand="1">http://HelloResponseMessage/Action</a:Action>
<h:OutOfBandData s:mustUnderstand="1" xmlns:h="http://www.examples.com">Served by object 13804354.</h:OutOfBandData>
</s:Header>
<s:Body>
<HelloResponseMessage xmlns="Microsoft.WCF.Documentation">
<ResponseToGreeting xmlns="http://www.examples.com">Service received: Hello.</ResponseToGreeting>
</HelloResponseMessage>
</s:Body>
</s:Envelope>
*/
}
<MessageContract> _
Public Class HelloResponseMessage
Private localResponse As String = String.Empty
Private extra As String = String.Empty
<MessageBodyMember(Name := "ResponseToGreeting", Namespace := "http://www.examples.com")> _
Public Property Response() As String
Get
Return localResponse
End Get
Set(ByVal value As String)
localResponse = value
End Set
End Property
<MessageHeader(Name := "OutOfBandData", Namespace := "http://www.examples.com", MustUnderstand:=True)> _
Public Property ExtraValues() As String
Get
Return extra
End Get
Set(ByVal value As String)
Me.extra = value
End Set
End Property
'
' The following is the response message, edited for clarity.
'
' <s:Envelope>
' <s:Header>
' <a:Action s:mustUnderstand="1">http://HelloResponseMessage/Action</a:Action>
' <h:OutOfBandData s:mustUnderstand="1" xmlns:h="http://www.examples.com">Served by object 13804354.</h:OutOfBandData>
' </s:Header>
' <s:Body>
' <HelloResponseMessage xmlns="Microsoft.WCF.Documentation">
' <ResponseToGreeting xmlns="http://www.examples.com">Service received: Hello.</ResponseToGreeting>
' </s:Body>
' </s:Envelope>
'
End Class
Hinweise
Weitere Informationen finden Sie im Abschnitt "Hinweise" unter MessageHeaderAttribute.
Wichtig
Beachten Sie, dass ein Fehler auftritt, wenn die MustUnderstand-Eigenschaft in einer gesendeten Nachricht auf true
gesetzt ist und die Empfängeranwendung den Header nicht interpretieren kann. Umgekehrt muss eine Kopfzeile mit dem SOAP-Header-Attribut, auf das Windows mustUnderstand
Communication Foundation (WCF) festgelegt true
ist, teil des Nachrichtenvertrags sein (oder von einem der Windows Communication Foundation (WCF)-Kanäle verarbeitet werden. Andernfalls wird davon ausgegangen, dass der Header nicht verstanden wird und eine Ausnahme ausgelöst wird.