MessageHeaderAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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:
ActorofRole(Actorin SOAP 1.1,Rolein SOAP 1.2)MustUnderstandRelay
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 |
| 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 |
| 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) |