MessageHeaderAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, že datový člen je záhlaví 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, AllowMultiple=false, 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í k vytvoření hlavičky MessageHeaderAttribute SOAP pro zprávu odpovědi se zprávou NameNamespace a MustUnderstand vlastnosti nastavené na hodnoty vhodné pro tuto hlavičku. Po příkladu 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 úpravy 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:
ActorneboRole(Actorv protokolu SOAP 1.1,Rolev protokolu SOAP 1.2)MustUnderstandRelay
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 atributu MustUnderstand .
Tyto atributy ale můžete číst a zapisovat, i když se ve výchozím nastavení neodesí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ává se, pokud se používá protokol SOAP 1.2). Například:
Druhým způsobem řízení těchto atributů je vytvoření požadovaného typu hlavičky parametr MessageHeader<T> typu třídy a použití výsledného typu společně s MessageHeaderAttribute. Vlastnosti pak použijte MessageHeader<T> programově k nastavení atributů SOAP. Například:
Pokud se použijí 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 povoleno. Například:
[MessageHeaderArray] public MessageHeader<Person> documentApprovers[];
Na straně příjmu lze čtení těchto atributů SOAP provést pouze v případě, že je použita obecná MessageHeader<T> třída. Actor Relay Zkontrolujte nebo MustUnderstand vlastnosti hlavičky MessageHeader<T> typu a zjistěte nastavení atributu v přijaté zprávě.
Při přijetí a následném odeslání zprávy se nastavení atributu SOAP pouze zaokrouhluje pro hlavičky MessageHeader<T> typu.
Konstruktory
| Name | Description |
|---|---|
| MessageHeaderAttribute() |
Inicializuje novou instanci MessageHeaderAttribute třídy. |
Vlastnosti
| Name | Description |
|---|---|
| Actor |
Získá nebo nastaví identifikátor URI, který označuje uzel, na který je tato hlavička cílem. Při použití protokolu SOAP 1.2 se mapuje na atribut hlavičky role 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 fungující v Actor roli musí porozumět této hlavičce. To je namapováno na atribut hlavičky |
| 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 as-is, 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. To je namapováno na atribut hlavičky |
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. (Zděděno od Attribute) |
| GetType() |
Získá Type aktuální instance. (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 pro odvozenou třídu. (Zděděno od Attribute) |
| Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního 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í
| Name | Description |
|---|---|
| _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 pro 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) |