MessageHeaderAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データ メンバーが 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
- 継承
- 派生
- 属性
例
次のコード例では、MessageHeaderAttribute を使用することにより、このヘッダーに対して適切な値が設定された Name プロパティ、Namespace プロパティ、および MustUnderstand プロパティを持つ応答メッセージの SOAP ヘッダーを作成しています。 このコード例の後、送信時のメッセージの例を示します。
[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
注釈
MessageHeaderAttribute 属性を使用して、MessageContractAttribute 属性でマークされた型のフィールドとプロパティを SOAP メッセージ ヘッダーにマッピングできます。 フィールドまたはプロパティには、シリアル化できる単純型または複合型を使用できます。
既定の SOAP エンベロープ自体を変更せずに SOAP 本文の内容のシリアル化を制御する方法については、「サービス コントラクトでのデータ転送の指定」および「データ コントラクトの使用」を参照してくださいSystem.Runtime.Serialization.DataContractAttribute。
メッセージ コントラクトの作成の詳細については、「メッセージ コントラクトの使用」を参照してください。
SOAP 標準では、ヘッダーに設定できる次の属性を定義しています。
Actor
またはRole
(SOAP 1.1 ではActor
、SOAP 1.2 ではRole
)MustUnderstand
Relay
Actor
属性または Role
属性は、指定のヘッダーが対象とするノードの URI を指定します。
MustUnderstand
属性は、ヘッダーがノード処理を認識する必要があるかどうかを指定します。
Relay
属性は、ダウンストリーム ノードにヘッダーを中継する必要があるかどうかを指定します。 Windows Communication Foundation (WCF) は、 属性を除き、受信メッセージに対してこれらの属性の処理を MustUnderstand
実行しません。
ただし、これらの属性が既定により送信されない場合でも、それらを読み書きできます。 属性値は 2 つの方法で指定できます。 最初の方法では、Actor の MustUnderstand、Relay、および MessageHeaderAttribute の各プロパティを変更できます (プロパティはありません Role
- プロパティを Actor 設定し、 Role
SOAP 1.2 が使用されている場合に渡されます)。 次に例を示します。
これらの属性を制御する 2 つ目の方法は、目的のヘッダーの型を MessageHeader<T> クラスの型パラメーターとして設定し、作成された型を MessageHeaderAttribute と共に使用することです。 その後で、MessageHeader<T> のプロパティをプログラムで使用して、SOAP 属性を設定します。 次に例を示します。
動的と静的の両方の制御メカニズムを使用している場合は、既定で静的な設定値が使用されますが、動的なメカニズムを使用してその値をオーバーライドできます。 次に例を示します。
動的な属性コントロールを持つ繰り返すヘッダーを作成できます。 次に例を示します。
[MessageHeaderArray] public MessageHeader<Person> documentApprovers[];
受信側では、これらの SOAP 属性の読み取りは、ジェネリックな MessageHeader<T> クラスが使用されている場合のみ実行できます。 受信メッセージの属性設定を調査するために、Actor 型のヘッダーの Relay プロパティ、MustUnderstand プロパティ、または MessageHeader<T> プロパティを調べます。
メッセージの受信と返信が行われるとき、これらの SOAP 属性の設定は、MessageHeader<T> 型のヘッダーとして往復するだけです。
コンストラクター
MessageHeaderAttribute() |
MessageHeaderAttribute クラスの新しいインスタンスを初期化します。 |
プロパティ
Actor |
このヘッダーが対象とするノードを示す URI を取得または設定します。 SOAP 1.2 が使用される場合は role 属性に、SOAP 1.1 が使用される場合は actor ヘッダー属性にマッピングされます。 |
HasProtectionLevel |
派生クラスでオーバーライドされた場合は、メンバーに保護レベルが割り当てられているかどうかを示す値を取得します。 (継承元 MessageContractMemberAttribute) |
MustUnderstand |
Actor ロールで動作するノードが、このヘッダーを認識する必要があるかどうかを指定します。 これは、 |
Name |
このメンバーに対応する要素の名前を指定します。 (継承元 MessageContractMemberAttribute) |
Namespace |
このメンバーに対応する要素の名前空間を指定します。 (継承元 MessageContractMemberAttribute) |
ProtectionLevel |
メンバーをそのまま送信するのか、署名して送信するのか、または署名と暗号化を行って送信するのかを指定します。 (継承元 MessageContractMemberAttribute) |
Relay |
このヘッダーをダウンストリーム ノードに中継する必要があるかどうかを指定します。 これは、 |
TypeId |
派生クラスで実装されると、この Attribute の一意の識別子を取得します。 (継承元 Attribute) |
メソッド
Equals(Object) |
このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。 (継承元 Attribute) |
GetHashCode() |
このインスタンスのハッシュ コードを返します。 (継承元 Attribute) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
IsDefaultAttribute() |
派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。 (継承元 Attribute) |
Match(Object) |
派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (継承元 Attribute) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
一連の名前を対応する一連のディスパッチ識別子に割り当てます。 (継承元 Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。 (継承元 Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。 (継承元 Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。 (継承元 Attribute) |
適用対象
.NET