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 hlavička 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, 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
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, 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í hlavičky MessageHeaderAttribute SOAP pro zprávu odpovědi se zprávou Namea Namespace MustUnderstand vlastnosti nastavené na hodnoty odpovídající této hlavičce. Za příkladem 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 změny 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:
Actor
neboRole
(Actor
v protokolu SOAP 1.1,Role
v protokolu SOAP 1.2)MustUnderstand
Relay
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 atributuMustUnderstand
.
Tyto atributy ale můžete číst a zapisovat, i když se ve výchozím nastavení neposí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á se, pokud se používá soap 1.2). Například:
Druhým způsobem řízení těchto atributů je vytvoření požadovaného typu hlavičky parametr typu třídy a použití výsledného MessageHeader<T> typu společně s MessageHeaderAttribute. Potom pomocí kódu programu nastavte MessageHeader<T> atributy SOAP. Například:
Pokud se používají 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 povolené. Například:
[MessageHeaderArray] public MessageHeader<Person> documentApprovers[];
Na přijímající straně lze čtení těchto atributů SOAP provést pouze v případě, že se použije obecná MessageHeader<T> třída. ActorProzkoumejte nebo Relay MustUnderstand vlastnosti záhlaví MessageHeader<T> typu a zjistěte nastavení atributů v přijaté zprávě.
Když se přijme zpráva a pak se odešle zpět, nastavení atributu SOAP pouze zaokrouhluje záhlaví MessageHeader<T> typu.
Konstruktory
MessageHeaderAttribute() |
Inicializuje novou instanci MessageHeaderAttribute třídy. |
Vlastnosti
Actor |
Získá nebo nastaví identifikátor URI, který označuje uzel, na který je tato hlavička cílem. Mapy atributu hlavičky role při použití protokolu SOAP 1.2 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, který funguje v Actor roli, musí porozumět této hlavičce. Namapuje se na |
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 tak, jak je, 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. Namapuje se na |
TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Metody
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od Attribute) |
GetType() |
Type Získá aktuální instanci. (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 odvozené třídy. (Zděděno od Attribute) |
Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru 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í
_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 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) |