Condividi tramite


MessageHeaderAttribute.MustUnderstand Proprietà

Definizione

Specifica se è necessario che il nodo che svolge il ruolo Actor riconosca questa intestazione. Questa proprietà è associata all'attributo di intestazione 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

Valore della proprietà

true se è necessario che il nodo che svolge il ruolo Actor riconosca questa intestazione. In caso contrario, false.

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare MessageHeaderAttribute per creare un'intestazione SOAP per il messaggio di risposta le cui proprietà Name, Namespace e MustUnderstand sono impostate su valori appropriati per tale intestazione. L'esempio di codice è seguito da un esempio del messaggio quando viene inviato.

 [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

Commenti

Per ulteriori informazioni, vedere la sezione Note di MessageHeaderAttribute.

Importante

È importante ricordare che se la proprietà MustUnderstand di un messaggio inviato è true e l'applicazione sul lato ricevente non riconosce l'intestazione, il sistema genera un errore. Al contrario, se un'intestazione con l'attributo di intestazione SOAP impostata su true viene ricevuta da Windows Communication Foundation (WCF), deve essere una parte del contratto di messaggio (o deve essere elaborata da uno dei canali WINDOWS Communication Foundation (WCF). In caso contrario, si presuppone che l'intestazione mustUnderstand non sia compresa e venga generata un'eccezione.

Si applica a