MessageHeaderAttribute.MustUnderstand 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.
Especifica se o nó atuando na função Actor deve entender esse cabeçalho. Isso é mapeado para o atributo do cabeçalho SOAP mustUnderstand
.
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
Valor da propriedade
true
se o nó atuando na função Actor deve entender esse cabeçalho; caso contrário, false
.
Exemplos
O exemplo de código a seguir mostra o uso do MessageHeaderAttribute cabeçalho SOAP para a mensagem de resposta e as NameNamespace MustUnderstand propriedades definidas como valores apropriados para esse cabeçalho. O exemplo de código é seguido por um exemplo da mensagem quando enviado.
[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
Comentários
Para obter mais informações, consulte a seção Comentários para MessageHeaderAttribute obter detalhes.
Importante
É importante lembrar que, se a MustUnderstand propriedade estiver true
em uma mensagem sendo enviada e o aplicativo no lado receptor não entender o cabeçalho, uma falha será gerada. Por outro lado, se um cabeçalho com o mustUnderstand
atributo de cabeçalho SOAP definido para true
ser recebido pelo Windows Communication Foundation (WCF), ele deverá fazer parte do contrato de mensagem (ou deve ser processado por um dos canais do Windows Communication Foundation (WCF); caso contrário, supõe-se que o cabeçalho não seja compreendido e uma exceção seja gerada.