MessageHeaderAttribute Klass

Definition

Anger att en datamedlem är ett SOAP-meddelandehuvud.

public ref class MessageHeaderAttribute : System::ServiceModel::MessageContractMemberAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)]
public class MessageHeaderAttribute : System.ServiceModel.MessageContractMemberAttribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)>]
type MessageHeaderAttribute = class
    inherit MessageContractMemberAttribute
Public Class MessageHeaderAttribute
Inherits MessageContractMemberAttribute
Arv
Härledda
Attribut

Exempel

I följande kodexempel visas användningen av MessageHeaderAttribute för att skapa en SOAP-rubrik för svarsmeddelandet med Nameegenskaperna , Namespace och MustUnderstand som är inställda på värden som är lämpliga för det här huvudet. Kodexemplet följs av ett exempel på meddelandet när det skickas.

 [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

Kommentarer

Med MessageHeaderAttribute attributet kan du mappa fält och egenskaper för en typ som har markerats med MessageContractAttribute attributet till SOAP-meddelanderubriker. Fältet eller egenskapen kan vara av en enkel typ eller en sammansatt typ som kan serialiseras.

Information om hur du styr serialiseringen av innehållet i en SOAP-brödtext utan att ändra själva SOAP-standardkuvertet finns System.Runtime.Serialization.DataContractAttributei Ange dataöverföring i tjänstkontrakt och Använda datakontrakt.

Mer information om hur du skapar meddelandekontrakt finns i Använda meddelandekontrakt.

SOAP-standarden definierar följande attribut som kan finnas i en rubrik:

  • Actor eller Role (Actor i SOAP 1.1, Role i SOAP 1.2)

  • MustUnderstand

  • Relay

Attributet Actor eller Role anger URI:n för noden som ett visst huvud är avsett för. Attributet MustUnderstand anger om huvudet förstår nodbearbetningen. Attributet Relay anger om rubriken ska vidarebefordras till underordnade noder. Windows Communication Foundation (WCF) utför inte någon bearbetning av dessa attribut på inkommande meddelanden, förutom attributet MustUnderstand.

Du kan dock läsa och skriva dessa attribut, även om de inte skickas som standard. Du kan ange attributvärdena på två sätt. Först kan du ändra Actoregenskaperna , MustUnderstand och RelayMessageHeaderAttribute. (Det finns ingen Role egenskap – ange Actor egenskapen och Role skickas om SOAP 1.2 används). Ett exempel:

Det andra sättet att styra dessa attribut är genom att göra önskad rubriktyp till typparametern för MessageHeader<T> klassen och använda den resulterande typen tillsammans med MessageHeaderAttribute. Använd MessageHeader<T> sedan egenskaperna programmatiskt för att ange SOAP-attributen. Ett exempel:

Om både de dynamiska och statiska kontrollmekanismerna används är de statiska inställningarna standard men kan åsidosättas med hjälp av den dynamiska mekanismen. Ett exempel:

Det är tillåtet att skapa upprepade rubriker med dynamisk attributkontroll. Ett exempel:

[MessageHeaderArray] public MessageHeader<Person> documentApprovers[];

På mottagarsidan kan du bara läsa dessa SOAP-attribut om den generiska MessageHeader<T> klassen används. ActorGranska egenskaperna , Relay eller MustUnderstand för en rubrik av typen MessageHeader<T> för att identifiera attributinställningarna för det mottagna meddelandet.

När ett meddelande tas emot och sedan skickas tillbaka, inställningarna för SOAP-attribut endast tur och retur för rubriker av typen MessageHeader<T> .

Konstruktorer

Name Description
MessageHeaderAttribute()

Initierar en ny instans av MessageHeaderAttribute klassen.

Egenskaper

Name Description
Actor

Hämtar eller anger en URI som anger den nod som rubriken är riktad mot. Mappar till rollrubrikattributet när SOAP 1.2 används och aktörsrubrikattributet när SOAP 1.1 används.

HasProtectionLevel

När den åsidosätts i en härledd klass får du ett värde som anger om medlemmen har en tilldelad skyddsnivå.

(Ärvd från MessageContractMemberAttribute)
MustUnderstand

Anger om noden som agerar i Actor rollen måste förstå det här huvudet. Detta mappas till mustUnderstand soap-huvudattributet.

Name

Anger namnet på elementet som motsvarar den här medlemmen.

(Ärvd från MessageContractMemberAttribute)
Namespace

Anger namnområdet för elementet som motsvarar den här medlemmen.

(Ärvd från MessageContractMemberAttribute)
ProtectionLevel

Anger om medlemmen ska överföras as-is, signerad eller signerad och krypterad.

(Ärvd från MessageContractMemberAttribute)
Relay

Anger om det här huvudet ska vidarebefordras till underordnade noder. Detta mappas till relay soap-huvudattributet.

TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)

Gäller för