MessageHeaderAttribute MessageHeaderAttribute MessageHeaderAttribute MessageHeaderAttribute Class

Définition

Spécifie qu'un membre de données est un en-tête de message SOAP.Specifies that a data member is a SOAP message header.

public ref class MessageHeaderAttribute : System::ServiceModel::MessageContractMemberAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)]
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, Inherited=false)]
public class MessageHeaderAttribute : System.ServiceModel.MessageContractMemberAttribute
type MessageHeaderAttribute = class
    inherit MessageContractMemberAttribute
Public Class MessageHeaderAttribute
Inherits MessageContractMemberAttribute
Héritage
Dérivé
Attributs

Exemples

Le code d'exemple suivant illustre l'utilisation de l'MessageHeaderAttribute pour créer un en-tête SOAP pour le message de réponse avec les propriétés Name, Namespace et MustUnderstand définies à des valeurs appropriées pour cet en-tête.The following code example shows the use of the MessageHeaderAttribute to create a SOAP header for the response message with the Name, Namespace and MustUnderstand properties set to values appropriate for this header. L'exemple de code est suivi d'un exemple du message à son envoi.The code example is followed by an example of the message when sent.

 [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

Remarques

L'attribut MessageHeaderAttribute vous permet de mapper les champs et les propriétés d'un type marqué à l'aide de l'attribut MessageContractAttribute aux en-têtes de message SOAP.The MessageHeaderAttribute attribute allows you to map fields and properties of a type marked with the MessageContractAttribute attribute to SOAP message headers. Le champ ou la propriété peut être d'un type simple ou d'un type composite qui peut être sérialisé.The field or property can be of a simple type or a composite type that can be serialized.

Pour plus d’informations sur le contrôle de la sérialisation du contenu d’un corps SOAP sans modifier l’enveloppe SOAP par défaut proprement dite, consultez System.Runtime.Serialization.DataContractAttribute, spécification d’transfert de données dans les contrats de serviceet utilisation de contrats de données.For information on controlling the serialization of the contents of a SOAP body without modifying the default SOAP envelope itself, see System.Runtime.Serialization.DataContractAttribute, Specifying Data Transfer in Service Contracts, and Using Data Contracts.

Pour plus d’informations sur la création de contrats de message, consultez utilisation de contrats de message.For more information about creating message contracts, see Using Message Contracts.

La norme SOAP définit les attributs suivants qui peuvent exister dans un en-tête :The SOAP standard defines the following attributes that can exist on a header:

  • Actor ou Role (Actor dans SOAP 1.1, Role dans SOAP 1.2)Actor or Role (Actor in SOAP 1.1, Role in SOAP 1.2)

  • MustUnderstand

  • Relay

L'attribut Actor ou Role spécifie l'URI du nœud pour lequel un en-tête donné est prévu.The Actor or Role attribute specifies the URI of the node for which a given header is intended. L'attribut MustUnderstand spécifie si l'en-tête comprend le traitement du nœud.The MustUnderstand attribute specifies whether the header understands the node processing. L'attribut Relay spécifie si l'en-tête sera relayé aux nœuds en aval.The Relay attribute specifies whether the header is to be relayed to downstream nodes. Windows Communication Foundation (WCF) n’effectue aucun traitement de ces attributs sur les messages entrants, à l’exception de l’attribut MustUnderstand.Windows Communication Foundation (WCF) does not perform any processing of these attributes on incoming messages, except for the MustUnderstand attribute.

Vous pouvez toutefois lire et écrire ces attributs, même s'ils ne sont pas envoyés par défaut.You can, however, read and write these attributes, even though they are not sent by default. Vous pouvez définir les valeurs d'attribut de deux manières.You can set the attribute values in two ways. Vous pouvez d'abord modifier les propriétés Actor, MustUnderstand et Relay sur l'MessageHeaderAttribute.First, you can change the Actor, MustUnderstand and Relay properties on the MessageHeaderAttribute. (Il n’y a aucune propriété Role-définissez la propriété Actor et Role est passé si SOAP 1,2 est utilisé).(There is no Role property - set the Actor property and Role is passed if SOAP 1.2 is used). Par exemple :For example:

La deuxième méthode pour contrôler ces attributs est de passer type d’en-tête souhaité comme paramètre de type de la classe MessageHeader<T> et à d’utiliser le type résultant avec l’MessageHeaderAttribute.The second way to control these attributes is by making the desired header type the type parameter of the MessageHeader<T> class and using the resulting type together with the MessageHeaderAttribute. Utilisez ensuite par programmation les propriétés MessageHeader<T> pour définir les attributs SOAP.Then use the MessageHeader<T> properties programmatically to set the SOAP attributes. Par exemple :For example:

Si les mécanismes de vérification statiques et dynamiques sont utilisés, les paramètres statiques sont définis par défaut mais peuvent être substitués à l'aide du mécanisme dynamique.If both the dynamic and the static control mechanisms are used, the static settings are the default but can be overridden using the dynamic mechanism. Par exemple :For example:

La création d'en-tête répétés avec vérification dynamique des attributs est autorisée.Creating repeated headers with dynamic attribute control is allowed. Par exemple :For example:

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

Côté réception, la lecture de ces attributs SOAP peut être faite uniquement si la classe MessageHeader<T> générique est utilisée.On the receiving side, reading these SOAP attributes can only be done if the generic MessageHeader<T> class is used. Examinez les propriétés Actor, Relay ou MustUnderstand d'un en-tête de type MessageHeader<T> pour découvrir les paramètres d'attribut du message reçu.Examine the Actor, Relay or MustUnderstand properties of a header of the MessageHeader<T> type to discover the attribute settings on the received message.

Lorsqu'un message est reçu puis renvoyé, les paramètres d'attribut SOAP font l'aller-retour uniquement pour les en-têtes de type MessageHeader<T>.When a message is received and then sent back, the SOAP attribute settings only roundtrip for headers of the MessageHeader<T> type.

Constructeurs

MessageHeaderAttribute() MessageHeaderAttribute() MessageHeaderAttribute() MessageHeaderAttribute()

Initialise une nouvelle instance de la classe MessageHeaderAttribute.Initializes a new instance of the MessageHeaderAttribute class.

Propriétés

Actor Actor Actor Actor

Obtient ou définit un URI qui indique le noeud ciblé par cet en-tête.Gets or sets a URI that indicates the node at which this header is targeted. Mappe vers l'attribut d'en-tête Role lorsque SOAP 1.2 est utilisé et l'attribut d'en-tête Actor lorsque SOAP 1.1 est utilisé.Maps to the role header attribute when SOAP 1.2 is used and the actor header attribute when SOAP 1.1 is used.

HasProtectionLevel HasProtectionLevel HasProtectionLevel HasProtectionLevel

En cas de substitution dans une classe dérivée, obtient une valeur qui indique si un niveau de protection est assigné au membre.When overridden in a derived class, gets a value that indicates whether the member has a protection level assigned.

(Inherited from MessageContractMemberAttribute)
MustUnderstand MustUnderstand MustUnderstand MustUnderstand

Spécifie si le nœud agissant dans le rôle Actor doit comprendre cet en-tête.Specifies whether the node acting in the Actor role must understand this header. Il est mappé vers l'attribut d'en-tête SOAP mustUnderstand.This is mapped to the mustUnderstand SOAP header attribute.

Name Name Name Name

Spécifie le nom de l'élément qui correspond à ce membre.Specifies the name of the element that corresponds to this member.

(Inherited from MessageContractMemberAttribute)
Namespace Namespace Namespace Namespace

Spécifie l'espace de noms de l'élément qui correspond à ce membre.Specifies the namespace of the element that corresponds to this member.

(Inherited from MessageContractMemberAttribute)
ProtectionLevel ProtectionLevel ProtectionLevel ProtectionLevel

Spécifie si le membre doit être transmis tel quel, signé ou signé et chiffré.Specifies whether the member is to be transmitted as-is, signed, or signed and encrypted.

(Inherited from MessageContractMemberAttribute)
Relay Relay Relay Relay

Spécifie si cet en-tête sera relayé aux nœuds en aval.Specifies whether this header is to be relayed to downstream nodes. Il est mappé vers l'attribut d'en-tête SOAP relay.This is mapped to the relay SOAP header attribute.

TypeId TypeId TypeId TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Méthodes

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Retourne le code de hachage de cette instance.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)

Implémentations d’interfaces explicites

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

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

S’applique à