MessageHeaderAttribute.MustUnderstand Propriedade

Definição

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

Boolean

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.

Aplica-se a