MessageHeaderAttribute Třída

Definice

Určuje, že datový člen je hlavička zprávy SOAP.

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, 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
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, Inherited=false)>]
type MessageHeaderAttribute = class
    inherit MessageContractMemberAttribute
Public Class MessageHeaderAttribute
Inherits MessageContractMemberAttribute
Dědičnost
Odvozené
Atributy

Příklady

Následující příklad kódu ukazuje použití hlavičky MessageHeaderAttribute SOAP pro zprávu odpovědi se zprávou Namea Namespace MustUnderstand vlastnosti nastavené na hodnoty odpovídající této hlavičce. Za příkladem kódu následuje příklad zprávy při odeslání.

 [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

Poznámky

Atribut MessageHeaderAttribute umožňuje mapovat pole a vlastnosti typu označeného atributem MessageContractAttribute na hlavičky zprávy SOAP. Pole nebo vlastnost mohou být jednoduchého typu nebo složeného typu, který lze serializovat.

Informace o řízení serializace obsahu těla SOAP bez změny výchozí obálky SOAP samotné, viz System.Runtime.Serialization.DataContractAttribute, Určení přenosu dat v kontraktech služeb a použití kontraktů dat.

Další informace o vytváření kontraktů zpráv naleznete v tématu Použití kontraktů zpráv.

Standard SOAP definuje následující atributy, které mohou existovat v hlavičce:

  • Actor nebo Role (Actor v protokolu SOAP 1.1, Role v protokolu SOAP 1.2)

  • MustUnderstand

  • Relay

Atribut Actor určuje Role identifikátor URI uzlu, pro který je daná hlavička určena. Atribut MustUnderstand určuje, jestli hlavička rozumí zpracování uzlu. Atribut Relay určuje, jestli má být hlavička předána podřízeným uzlům. Windows Communication Foundation (WCF) neprovádí žádné zpracování těchto atributů u příchozích zpráv s výjimkou atributuMustUnderstand.

Tyto atributy ale můžete číst a zapisovat, i když se ve výchozím nastavení neposílají. Hodnoty atributů můžete nastavit dvěma způsoby. Nejprve můžete změnit ActorMustUnderstand vlastnosti a vlastnosti Relay v objektu MessageHeaderAttribute. (Neexistuje žádná Role vlastnost – nastavte Actor vlastnost a Role předá se, pokud se používá soap 1.2). Například:

Druhým způsobem řízení těchto atributů je vytvoření požadovaného typu hlavičky parametr typu třídy a použití výsledného MessageHeader<T> typu společně s MessageHeaderAttribute. Potom pomocí kódu programu nastavte MessageHeader<T> atributy SOAP. Například:

Pokud se používají dynamické mechanismy i mechanismy statického řízení, jsou statická nastavení výchozí, ale lze je přepsat pomocí dynamického mechanismu. Například:

Vytváření opakovaných hlaviček s dynamickým ovládacím prvkem atributů je povolené. Například:

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

Na přijímající straně lze čtení těchto atributů SOAP provést pouze v případě, že se použije obecná MessageHeader<T> třída. ActorProzkoumejte nebo Relay MustUnderstand vlastnosti záhlaví MessageHeader<T> typu a zjistěte nastavení atributů v přijaté zprávě.

Když se přijme zpráva a pak se odešle zpět, nastavení atributu SOAP pouze zaokrouhluje záhlaví MessageHeader<T> typu.

Konstruktory

MessageHeaderAttribute()

Inicializuje novou instanci MessageHeaderAttribute třídy.

Vlastnosti

Actor

Získá nebo nastaví identifikátor URI, který označuje uzel, na který je tato hlavička cílem. Mapy atributu hlavičky role při použití protokolu SOAP 1.2 a atribut hlavičky objektu actor při použití protokolu SOAP 1.1.

HasProtectionLevel

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda člen má přiřazenou úroveň ochrany.

(Zděděno od MessageContractMemberAttribute)
MustUnderstand

Určuje, jestli uzel, který funguje v Actor roli, musí porozumět této hlavičce. Namapuje se na mustUnderstand atribut hlavičky SOAP.

Name

Určuje název prvku, který odpovídá tomuto členu.

(Zděděno od MessageContractMemberAttribute)
Namespace

Určuje obor názvů elementu, který odpovídá tomuto členu.

(Zděděno od MessageContractMemberAttribute)
ProtectionLevel

Určuje, zda má být člen přenášen tak, jak je, podepsán nebo podepsán a zašifrován.

(Zděděno od MessageContractMemberAttribute)
Relay

Určuje, jestli se má tato hlavička předávat podřízeným uzlům. Namapuje se na relay atribut hlavičky SOAP.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou odvozené třídy.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro