MessageHeaderAttribute.MustUnderstand Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica se o nó que desempenha a Actor função deve compreender este cabeçalho. Isto é mapeado para o mustUnderstand atributo do cabeçalho 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
Valor de Propriedade
true se o nó que desempenha a Actor função tiver de compreender este cabeçalho; caso contrário, false.
Exemplos
O exemplo de código seguinte mostra a utilização de para MessageHeaderAttribute criar um cabeçalho SOAP para a mensagem de resposta com o Name, Namespace e MustUnderstand propriedades definidas para valores apropriados para este cabeçalho. O exemplo do código é seguido por um exemplo da mensagem quando enviada.
[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
Observações
Para mais informações, consulte a secção Observações de MessageHeaderAttribute para mais detalhes.
Importante
É importante lembrar que, se a MustUnderstand propriedade estiver true numa mensagem a ser enviada e a aplicação do lado receptor não compreender o cabeçalho, é gerada uma falha. Por outro lado, se um cabeçalho com o atributo de cabeçalho SOAP mustUnderstand definido para true for recebido por Windows Communication Foundation (WCF), deve fazer parte do contrato de mensagem (ou deve ser processado por um dos Windows Communication Foundation (WCF); caso contrário, assume-se que o cabeçalho não é compreendido e é lançada uma exceção.