MessageHeaderAttribute Osztály

Definíció

Azt adja meg, hogy az adattag egy SOAP-üzenetfejléc.

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
Öröklődés
Származtatott
Attribútumok

Példák

Az alábbi példakód azt mutatja be, hogy a MessageHeaderAttribute válaszüzenethez Namea SOAP-fejlécet kell létrehozni, Namespace a MustUnderstand tulajdonságok pedig az adott fejlécnek megfelelő értékekre vannak beállítva. A kód példáját az üzenet elküldésekor egy példa követi.

 [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

Megjegyzések

Az MessageHeaderAttribute attribútum lehetővé teszi egy SOAP-üzenetfejlécek attribútumával MessageContractAttribute megjelölt típus mezőinek és tulajdonságainak leképezését. A mező vagy tulajdonság lehet egyszerű vagy szerializálható összetett típus.

A SOAP-törzs tartalmának az alapértelmezett SOAP-boríték módosítása nélküli szerializálásának szabályozásával kapcsolatos információkért lásd: System.Runtime.Serialization.DataContractAttributeAz adatátvitel megadása a szolgáltatási szerződésekben és az Adatszerződések használata.

További információ az üzenetszerződések létrehozásáról: Üzenetszerződések használata.

A SOAP szabvány az alábbi attribútumokat határozza meg, amelyek egy fejlécen létezhetnek:

  • Actor vagy Role (Actor a SOAP 1.1-ben, Role a SOAP 1.2-ben)

  • MustUnderstand

  • Relay

Az Actor vagy Role attribútum annak a csomópontnak az URI-ját adja meg, amelyhez egy adott fejlécet szánnak. Az MustUnderstand attribútum azt határozza meg, hogy a fejléc megérti-e a csomópont feldolgozását. Az Relay attribútum megadja, hogy a fejléc tovább legyen-e továbbítva az alsóbb rétegbeli csomópontokra. Windows kommunikációs alaprendszer (WCF) nem végzi el ezen attribútumok feldolgozását a bejövő üzeneteken, kivéve a MustUnderstand attribútumot.

Ezeket az attribútumokat azonban elolvashatja és megírhatja, még akkor is, ha alapértelmezés szerint nem küldi el őket. Az attribútumértékeket kétféleképpen állíthatja be. Először is módosíthatja a Actor. MustUnderstandRelayMessageHeaderAttribute (Nincs Role tulajdonság – adja meg a Actor tulajdonságot, és Role a SOAP 1.2 használata esetén a rendszer átadja. Például:

Az attribútumok szabályozásának második módja az, ha a kívánt fejléctípust az MessageHeader<T> osztály típusparaméterének adja meg, és az eredményként kapott típust használja a MessageHeaderAttribute. Ezután a MessageHeader<T> tulajdonságok programozott használatával állítsa be a SOAP attribútumokat. Például:

Ha mind a dinamikus, mind a statikus vezérlési mechanizmust használja, a statikus beállítások az alapértelmezettek, de felül lehet bírálni a dinamikus mechanizmussal. Például:

Az ismétlődő fejlécek dinamikus attribútumvezérlővel való létrehozása engedélyezett. Például:

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

A fogadó oldalon ezek a SOAP-attribútumok olvasása csak az általános MessageHeader<T> osztály használata esetén végezhető el. ActorA kapott üzenet attribútumbeállításainak felderítéséhez vizsgálja meg a Relay típus fejlécének tulajdonságait MustUnderstand vagy MessageHeader<T> tulajdonságait.

Amikor egy üzenet érkezik, majd visszaküldi az üzenetet, a SOAP attribútum beállításai csak a típus fejléceinek kerekítését MessageHeader<T> adják meg.

Konstruktorok

Name Description
MessageHeaderAttribute()

Inicializálja a MessageHeaderAttribute osztály új példányát.

Tulajdonságok

Name Description
Actor

Lekéri vagy beállít egy URI-t, amely azt a csomópontot jelzi, amelyen ez a fejléc van megcélzva. A SOAP 1.2 használatakor a szerepkörfejléc attribútumra, a SOAP 1.1 használatakor pedig az aktorfejléc attribútumra lesz leképzve.

HasProtectionLevel

Ha egy származtatott osztályban felül van bírálva, egy olyan értéket kap, amely jelzi, hogy a taghoz hozzárendelt védelmi szint van-e hozzárendelve.

(Öröklődés forrása MessageContractMemberAttribute)
MustUnderstand

Megadja, hogy a szerepkörben Actor eljáró csomópontnak meg kell-e értenie ezt a fejlécet. Ez a SOAP fejléc attribútumra mustUnderstand van leképezve.

Name

A tagnak megfelelő elem nevét adja meg.

(Öröklődés forrása MessageContractMemberAttribute)
Namespace

A tagnak megfelelő elem névterét adja meg.

(Öröklődés forrása MessageContractMemberAttribute)
ProtectionLevel

Megadja, hogy a tagot as-is, aláírt vagy aláírt és titkosított formátumban kell-e továbbítani.

(Öröklődés forrása MessageContractMemberAttribute)
Relay

Megadja, hogy a fejléc tovább legyen-e továbbítva az alsóbb rétegbeli csomópontokra. Ez a SOAP fejléc attribútumra relay van leképezve.

TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)

Metódusok

Name Description
Equals(Object)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

(Öröklődés forrása Attribute)
GetHashCode()

A példány kivonatkódját adja vissza.

(Öröklődés forrása Attribute)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

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

Névkészletet képez le a küldési azonosítók megfelelő készletére.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

(Öröklődés forrása Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

(Öröklődés forrása Attribute)

A következőre érvényes: