MessageHeaderAttribute.MustUnderstand Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, jestli uzel působící v Actor roli musí této hlavičce rozumět. Tento atribut se mapuje na atribut hlavičky mustUnderstand
SOAP.
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
Hodnota vlastnosti
true
pokud uzel působící v Actor roli musí této hlavičce rozumět, v opačném případě false
.
Příklady
Následující příklad kódu ukazuje použití MessageHeaderAttribute k vytvoření hlavičky SOAP pro zprávu odpovědi s vlastnostmi a NamespaceMustUnderstand nastavenými Namena hodnoty odpovídající této hlavičce. Po příkladu kódu následuje příklad zprávy při odeslání.
[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
Poznámky
Další informace najdete v části Poznámky v tématu MessageHeaderAttribute Podrobnosti.
Důležité
Je důležité si uvědomit, že pokud MustUnderstand je true
vlastnost v odesílané zprávě a aplikace na přijímající straně nerozumí hlavičce, vygeneruje se chyba. Pokud naopak windows Communication Foundation (WCF) přijímá hlavičku s atributem mustUnderstand
hlavičky PROTOKOLU SOAP na true
hodnotu, musí být součástí kontraktu zprávy (nebo musí být zpracována jedním z kanálů WCF (Windows Communication Foundation). V opačném případě se předpokládá, že hlavička není srozumitelná a vyvolána výjimka.