MessageHeaderAttribute.MustUnderstand Propiedad

Definición

Especifica si el nodo que representa en la función Actor debe entender este encabezado. Se asigna al atributo de encabezado 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 de propiedad

Boolean

true si el nodo que actúa en la función Actor debe entender este encabezado; de lo contrario, false.

Ejemplos

El siguiente ejemplo de código muestra el uso de MessageHeaderAttribute para crear un encabezado SOAP para el mensaje de respuesta con las propiedades Name, Namespace y MustUnderstand establecidas con valores adecuados para este encabezado. El ejemplo de código está seguido por un ejemplo del mensaje cuando se envía.

 [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

Comentarios

Para obtener más información, consulte la sección Comentarios de MessageHeaderAttribute para obtener más información.

Importante

Es importante recordar que si la propiedad MustUnderstand es true en un mensaje que se va a enviar y que la aplicación en el lado receptor no entiende el encabezado, se generará un error. Por el contrario, si Windows Communication Foundation (WCF) recibe un encabezado con el mustUnderstand atributo de encabezado SOAP establecido true en , debe formar parte del contrato de mensaje (o debe procesarse mediante uno de los canales de Communication Foundation (WCF) de Windows); en caso contrario, se supone que el encabezado no se entiende y se produce una excepción.

Se aplica a