MessageHeaderAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Specifica che un membro dati è un'intestazione di messaggio 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, AllowMultiple=false, Inherited=false)>]
type MessageHeaderAttribute = class
inherit MessageContractMemberAttribute
Public Class MessageHeaderAttribute
Inherits MessageContractMemberAttribute
- Ereditarietà
- Derivato
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato l'uso di MessageHeaderAttribute per creare un'intestazione SOAP per il messaggio di risposta con le Nameproprietà e NamespaceMustUnderstand impostate sui valori appropriati per questa intestazione. L'esempio di codice è seguito da un esempio del messaggio quando viene inviato.
[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
Commenti
L'attributo MessageHeaderAttribute consente di eseguire il mapping di campi e proprietà di un tipo contrassegnato con l'attributo MessageContractAttribute alle intestazioni del messaggio SOAP. Il campo o la proprietà possono essere di un tipo semplice o di un tipo composito che può essere serializzato.
Per informazioni sul controllo della serializzazione del contenuto di un corpo SOAP senza modificare la busta SOAP predefinita, vedere System.Runtime.Serialization.DataContractAttribute, Specifica del trasferimento dei dati nei contratti di servizio e Utilizzo di contratti dati.
Per altre informazioni sulla creazione di contratti di messaggio, vedere Uso dei contratti di messaggio.
Lo standard SOAP definisce gli attributi seguenti che possono esistere in un'intestazione:
ActoroRole(Actorin SOAP 1.1,Rolein SOAP 1.2)MustUnderstandRelay
L'attributo Actor o Role specifica l'URI del nodo per il quale è prevista una determinata intestazione. L'attributo MustUnderstand specifica se l'intestazione riconosce l'elaborazione del nodo. L'attributo Relay specifica se l'intestazione deve essere inoltrata ai nodi downstream. Windows Communication Foundation (WCF) non esegue alcuna elaborazione di questi attributi nei messaggi in arrivo, ad eccezione dell'attributo MustUnderstand .
È tuttavia possibile leggere e scrivere questi attributi, anche se non vengono inviati per impostazione predefinita. È possibile impostare i valori degli attributi in due modi. Prima di tutto, è possibile modificare le Actorproprietà e MustUnderstandRelay in MessageHeaderAttribute. Non esiste alcuna Role proprietà: impostare la Actor proprietà e Role viene passata se viene usato SOAP 1.2. Per esempio:
Il secondo modo per controllare questi attributi consiste nel rendere il tipo di intestazione desiderato il parametro di tipo della MessageHeader<T> classe e usando il tipo risultante insieme all'oggetto MessageHeaderAttribute. Usare quindi le MessageHeader<T> proprietà a livello di codice per impostare gli attributi SOAP. Per esempio:
Se vengono usati sia i meccanismi di controllo dinamici che i meccanismi di controllo statici, le impostazioni statiche sono predefinite, ma possono essere sottoposte a override usando il meccanismo dinamico. Per esempio:
La creazione di intestazioni ripetute con il controllo dinamico degli attributi è consentita. Per esempio:
[MessageHeaderArray] public MessageHeader<Person> documentApprovers[];
Sul lato ricevente, la lettura di questi attributi SOAP può essere eseguita solo se viene usata la classe generica MessageHeader<T> . Esaminare le Actorproprietà o MustUnderstandRelay di un'intestazione del MessageHeader<T> tipo per individuare le impostazioni dell'attributo nel messaggio ricevuto.
Quando un messaggio viene ricevuto e quindi inviato di nuovo, le impostazioni dell'attributo SOAP vengono inviate solo per le intestazioni del MessageHeader<T> tipo.
Costruttori
| Nome | Descrizione |
|---|---|
| MessageHeaderAttribute() |
Inizializza una nuova istanza della classe MessageHeaderAttribute. |
Proprietà
| Nome | Descrizione |
|---|---|
| Actor |
Ottiene o imposta un URI che indica il nodo di destinazione dell'intestazione. Esegue il mapping all'attributo dell'intestazione del ruolo quando viene usato SOAP 1.2 e l'attributo dell'intestazione dell'attore quando si usa SOAP 1.1. |
| HasProtectionLevel |
In caso di override in una classe derivata, ottiene un valore che indica se al membro è assegnato un livello di protezione. (Ereditato da MessageContractMemberAttribute) |
| MustUnderstand |
Specifica se il nodo che agisce nel Actor ruolo deve comprendere questa intestazione. Viene eseguito il mapping all'attributo dell'intestazione |
| Name |
Specifica il nome dell'elemento che corrisponde a questo membro. (Ereditato da MessageContractMemberAttribute) |
| Namespace |
Specifica lo spazio dei nomi dell'elemento che corrisponde a questo membro. (Ereditato da MessageContractMemberAttribute) |
| ProtectionLevel |
Specifica se il membro deve essere trasmesso as-is, firmato o firmato e crittografato. (Ereditato da MessageContractMemberAttribute) |
| Relay |
Specifica se l'intestazione deve essere inoltrata ai nodi downstream. Viene eseguito il mapping all'attributo dell'intestazione |
| TypeId |
Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute. (Ereditato da Attribute) |
Metodi
| Nome | Descrizione |
|---|---|
| Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
| GetHashCode() |
Restituisce il codice hash per questa istanza. (Ereditato da Attribute) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IsDefaultAttribute() |
Quando sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) |
| Match(Object) |
Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per un'interfaccia. (Ereditato da Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto . (Ereditato da Attribute) |