MessageHeaderAttribute.MustUnderstand Propriedade

Definição

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.

Aplica-se a