MessageHeaderAttribute Klas

Definitie

Hiermee geeft u op dat een gegevenslid een SOAP-berichtkop is.

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
Overname
Afgeleid
Kenmerken

Voorbeelden

Het volgende codevoorbeeld toont het gebruik van het MessageHeaderAttribute maken van een SOAP-header voor het antwoordbericht met de NameNamespaceMustUnderstand eigenschappen die zijn ingesteld op waarden die geschikt zijn voor deze header. Het codevoorbeeld wordt gevolgd door een voorbeeld van het bericht wanneer het wordt verzonden.

 [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

Opmerkingen

Met MessageHeaderAttribute het kenmerk kunt u velden en eigenschappen toewijzen van een type dat is gemarkeerd met het MessageContractAttribute kenmerk voor SOAP-berichtkoppen. Het veld of de eigenschap kan van een eenvoudig type of een samengesteld type zijn dat kan worden geserialiseerd.

Zie voor informatie over het beheren van de serialisatie van de inhoud van een SOAP-hoofdtekst zonder de standaard SOAP-envelop zelf te wijzigen, System.Runtime.Serialization.DataContractAttributegegevensoverdracht in servicecontracten en het gebruik van gegevenscontracten.

Zie Berichtcontracten gebruiken voor meer informatie over het maken van berichtcontracten.

De SOAP-standaard definieert de volgende kenmerken die op een header kunnen bestaan:

  • Actor of Role (Actor in SOAP 1.1, Role in SOAP 1.2)

  • MustUnderstand

  • Relay

Het Actor of Role kenmerk geeft de URI op van het knooppunt waarvoor een bepaalde header is bedoeld. Het MustUnderstand kenmerk geeft aan of de header de verwerking van het knooppunt begrijpt. Het Relay kenmerk geeft aan of de header moet worden doorgestuurd naar downstreamknooppunten. Windows Communication Foundation (WCF) voert geen verwerking van deze kenmerken uit op binnenkomende berichten, met uitzondering van het kenmerk MustUnderstand.

U kunt deze kenmerken echter wel lezen en schrijven, ook al worden ze niet standaard verzonden. U kunt de kenmerkwaarden op twee manieren instellen. Eerst kunt u de Actor, MustUnderstand en Relay eigenschappen op de MessageHeaderAttribute. (Er is geen Role eigenschap: stel de Actor eigenschap in en Role wordt doorgegeven als SOAP 1.2 wordt gebruikt). Voorbeeld:

De tweede manier om deze kenmerken te beheren, is door het gewenste headertype de typeparameter van de MessageHeader<T> klasse te maken en het resulterende type samen met de MessageHeaderAttribute. Gebruik vervolgens de MessageHeader<T> eigenschappen programmatisch om de SOAP-kenmerken in te stellen. Voorbeeld:

Als zowel de dynamische als de statische besturingsmechanismen worden gebruikt, zijn de statische instellingen de standaardinstelling, maar kunnen ze worden overschreven met behulp van het dynamische mechanisme. Voorbeeld:

Het maken van herhaalde headers met dynamisch kenmerkbeheer is toegestaan. Voorbeeld:

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

Aan de ontvangstzijde kunnen deze SOAP-kenmerken alleen worden gelezen als de algemene MessageHeader<T> klasse wordt gebruikt. Bekijk de Actorof RelayMustUnderstand eigenschappen van een header van het MessageHeader<T> type om de kenmerkinstellingen voor het ontvangen bericht te detecteren.

Wanneer een bericht wordt ontvangen en vervolgens teruggestuurd, worden de SOAP-kenmerkinstellingen alleen roundtrip voor kopteksten van het MessageHeader<T> type.

Constructors

Name Description
MessageHeaderAttribute()

Initialiseert een nieuw exemplaar van de MessageHeaderAttribute klasse.

Eigenschappen

Name Description
Actor

Hiermee wordt een URI opgehaald of ingesteld die het knooppunt aangeeft waarop deze header is gericht. Wordt toegewezen aan het kenmerk rolheader wanneer SOAP 1.2 wordt gebruikt en het kenmerk actorheader wanneer SOAP 1.1 wordt gebruikt.

HasProtectionLevel

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde opgehaald die aangeeft of aan het lid een beveiligingsniveau is toegewezen.

(Overgenomen van MessageContractMemberAttribute)
MustUnderstand

Hiermee geeft u op of het knooppunt dat in de Actor rol optreedt, deze header moet begrijpen. Dit is toegewezen aan het mustUnderstand SOAP-headerkenmerk.

Name

Hiermee geeft u de naam van het element dat overeenkomt met dit lid.

(Overgenomen van MessageContractMemberAttribute)
Namespace

Hiermee geeft u de naamruimte van het element dat overeenkomt met dit lid.

(Overgenomen van MessageContractMemberAttribute)
ProtectionLevel

Hiermee geeft u op of het lid moet worden verzonden as-is, ondertekend of ondertekend en versleuteld.

(Overgenomen van MessageContractMemberAttribute)
Relay

Hiermee geeft u op of deze header moet worden doorgestuurd naar downstreamknooppunten. Dit is toegewezen aan het relay SOAP-headerkenmerk.

TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op