MessageBodyMemberAttribute 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 lid wordt geserialiseerd als een element in de SOAP-hoofdtekst.
public ref class MessageBodyMemberAttribute : System::ServiceModel::MessageContractMemberAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, Inherited=false)]
public class MessageBodyMemberAttribute : System.ServiceModel.MessageContractMemberAttribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, Inherited=false)>]
type MessageBodyMemberAttribute = class
inherit MessageContractMemberAttribute
Public Class MessageBodyMemberAttribute
Inherits MessageContractMemberAttribute
- Overname
- Kenmerken
Voorbeelden
In het volgende codevoorbeeld ziet u het gebruik van de MessageContractAttribute soap-envelopstructuur voor zowel het aanvraagbericht als het antwoordbericht, en het gebruik van zowel de MessageHeaderAttribute (om een SOAP-header voor het antwoordbericht te maken) als de MessageBodyMemberAttribute (om de hoofdtekst van het aanvraag- en antwoordbericht op te geven). Het codevoorbeeld bevat een voorbeeld van elk bericht wanneer het wordt verzonden.
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Channels;
namespace Microsoft.WCF.Documentation
{
[ServiceContract(Namespace = "Microsoft.WCF.Documentation")]
interface IMessagingHello
{
[OperationContract(
Action = "http://GreetingMessage/Action",
ReplyAction = "http://HelloResponseMessage/Action"
)]
HelloResponseMessage Hello(HelloGreetingMessage msg);
}
[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 HelloGreetingMessage
{
private string localGreeting;
[MessageBodyMember(
Name = "Salutations",
Namespace = "http://www.examples.com"
)]
public string Greeting
{
get { return localGreeting; }
set { localGreeting = value; }
}
}
/*
The following is the request message, edited for clarity.
<s:Envelope>
<s:Header>
<!-- Note: Some header content has been removed for clarity.
<a:Action>http://GreetingMessage/Action</a:Action>
<a:To s:mustUnderstand="1"></a:To>
</s:Header>
<s:Body u:Id="_0" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<HelloGreetingMessage xmlns="Microsoft.WCF.Documentation">
<Salutations xmlns="http://www.examples.com">Hello.</Salutations>
</HelloGreetingMessage>
</s:Body>
</s:Envelope>
*/
class MessagingHello : IMessagingHello
{
public HelloResponseMessage Hello(HelloGreetingMessage msg)
{
Console.WriteLine("Caller sent: " + msg.Greeting);
HelloResponseMessage responseMsg = new HelloResponseMessage();
responseMsg.Response = "Service received: " + msg.Greeting;
responseMsg.ExtraValues = String.Format("Served by object {0}.", this.GetHashCode().ToString());
Console.WriteLine("Returned response message.");
return responseMsg;
}
}
}
Imports System.Runtime.Serialization
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Namespace Microsoft.WCF.Documentation
<ServiceContract(Namespace := "Microsoft.WCF.Documentation")> _
Friend Interface IMessagingHello
<OperationContract(Action := "http://GreetingMessage/Action", ReplyAction := "http://HelloResponseMessage/Action")> _
Function Hello(ByVal msg As HelloGreetingMessage) As HelloResponseMessage
End Interface
<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
<MessageContract> _
Public Class HelloGreetingMessage
Private localGreeting As String
<MessageBodyMember(Name := "Salutations", Namespace := "http://www.examples.com")> _
Public Property Greeting() As String
Get
Return localGreeting
End Get
Set(ByVal value As String)
localGreeting = value
End Set
End Property
End Class
'
' The following is the request message, edited for clarity.
'
' <s:Envelope>
' <s:Header>
' <!-- Note: Some header content has been removed for clarity.
' <a:Action>http://GreetingMessage/Action</a:Action>
' <a:To s:mustUnderstand="1"></a:To>
' </s:Header>
' <s:Body u:Id="_0" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
' <HelloGreetingMessage xmlns="Microsoft.WCF.Documentation">
' <Salutations xmlns="http://www.examples.com">Hello.</Salutations>
' </s:Body>
' </s:Envelope>
'
Friend Class MessagingHello
Implements IMessagingHello
Public Function Hello(ByVal msg As HelloGreetingMessage) As HelloResponseMessage Implements IMessagingHello.Hello
Console.WriteLine("Caller sent: " & msg.Greeting)
Dim responseMsg As New HelloResponseMessage()
responseMsg.Response = "Service received: " & msg.Greeting
responseMsg.ExtraValues = String.Format("Served by object {0}.", Me.GetHashCode().ToString())
Console.WriteLine("Returned response message.")
Return responseMsg
End Function
End Class
End Namespace
Opmerkingen
Gebruik het MessageBodyMemberAttribute kenmerk om op te geven dat een gegevenslid in de SOAP-hoofdtekst wordt geserialiseerd en om bepaalde serialisatie-items te beheren.
De Order eigenschap wordt gebruikt om de volgorde van hoofdonderdelen op te geven in gevallen waarin de standaard alfabetische volgorde niet geschikt is.
De andere eigenschappen worden overgenomen van de basisklasse. System.ServiceModel.MessageContractMemberAttribute
Zie voor meer 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.DataContractAttributehet opgeven van gegevensoverdracht in servicecontracten en het gebruik van gegevenscontracten.
Zie Berichtcontracten gebruiken voor meer informatie.
Constructors
| Name | Description |
|---|---|
| MessageBodyMemberAttribute() |
Initialiseert een nieuw exemplaar van de MessageBodyMemberAttribute klasse. |
Eigenschappen
| Name | Description |
|---|---|
| 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) |
| 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) |
| Order |
Hiermee wordt een waarde opgehaald of ingesteld die de positie aangeeft waarin het lid in de SOAP-hoofdtekst wordt geserialiseerd. |
| ProtectionLevel |
Hiermee geeft u op of het lid moet worden verzonden as-is, ondertekend of ondertekend en versleuteld. (Overgenomen van MessageContractMemberAttribute) |
| 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) |