MessageHeaders クラス

定義

メッセージに対するメッセージ ヘッダーのコレクションを表します。Represents a collection of message headers for a message. このクラスは継承できません。This class cannot be inherited.

public ref class MessageHeaders sealed : System::Collections::Generic::IEnumerable<System::ServiceModel::Channels::MessageHeaderInfo ^>
public sealed class MessageHeaders : System.Collections.Generic.IEnumerable<System.ServiceModel.Channels.MessageHeaderInfo>
type MessageHeaders = class
    interface seq<MessageHeaderInfo>
    interface IEnumerable
Public NotInheritable Class MessageHeaders
Implements IEnumerable(Of MessageHeaderInfo)
継承
MessageHeaders
実装

チャネル ファクトリを使用してメッセージを送信したり、応答からアクション ヘッダーを読み取ったりする基本的なクライアントを次のコード例に示します。The following code example demonstrates a basic client using the channel factory to send a message and read the action header from the reply.

using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Runtime.Serialization;

namespace ConsoleApplication1
{
    class client
    {


        static void RunClient()
        {
            //Step1: create a binding with just HTTP
            CustomBinding binding = new CustomBinding();
            binding.Elements.Add(new HttpTransportBindingElement());
            //Step2: use the binding to build the channel factory
            IChannelFactory<IRequestChannel> factory =
            binding.BuildChannelFactory<IRequestChannel>(
                             new BindingParameterCollection());
            //open the channel factory
            factory.Open();
            //Step3: use the channel factory to create a channel
            IRequestChannel channel = factory.CreateChannel(
               new EndpointAddress("http://localhost:8080/channelapp"));
            channel.Open();
            //Step4: create a message
            Message requestmessage = Message.CreateMessage(
                MessageVersion.Soap12WSAddressing10,
                "http://contoso.com/someaction",
                 "This is the body data");
            //send message
            Message replymessage = channel.Request(requestmessage);
            Console.WriteLine("Reply message received");
            Console.WriteLine("Reply action: {0}",
                                  replymessage.Headers.Action);
            string data = replymessage.GetBody<string>();
            Console.WriteLine("Reply content: {0}", data);
            //Step5: don't forget to close the message
            requestmessage.Close();
            replymessage.Close();
            //don't forget to close the channel
            channel.Close();
            //don't forget to close the factory
            factory.Close();
        }
        public static void Main()
        {
            Console.WriteLine("Press [ENTER] when service is ready");
            Console.ReadLine();
            RunClient();
            Console.WriteLine("Press [ENTER] to exit");
            Console.ReadLine();
        }
    }
}


Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.Runtime.Serialization

Namespace ConsoleApplication1
    Friend Class client


        Private Shared Sub RunClient()
            'Step1: create a binding with just HTTP
            Dim binding As New CustomBinding()
            binding.Elements.Add(New HttpTransportBindingElement())
            'Step2: use the binding to build the channel factory
            Dim factory As IChannelFactory(Of IRequestChannel) = binding.BuildChannelFactory(Of IRequestChannel)(New BindingParameterCollection())
            'open the channel factory
            factory.Open()
            'Step3: use the channel factory to create a channel
            Dim channel As IRequestChannel = factory.CreateChannel(New EndpointAddress("http://localhost:8080/channelapp"))
            channel.Open()
            'Step4: create a message
            Dim requestmessage As Message = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, "http://contoso.com/someaction", "This is the body data")
            'send message
            Dim replymessage As Message = channel.Request(requestmessage)
            Console.WriteLine("Reply message received")
            Console.WriteLine("Reply action: {0}", replymessage.Headers.Action)
            Dim data = replymessage.GetBody(Of String)()
            Console.WriteLine("Reply content: {0}", data)
            'Step5: don't forget to close the message
            requestmessage.Close()
            replymessage.Close()
            'don't forget to close the channel
            channel.Close()
            'don't forget to close the factory
            factory.Close()
        End Sub
        Public Shared Sub Main()
            Console.WriteLine("Press [ENTER] when service is ready")
            Console.ReadLine()
            RunClient()
            Console.WriteLine("Press [ENTER] to exit")
            Console.ReadLine()
        End Sub
    End Class
End Namespace

注釈

メッセージ ヘッダーは、メッセージを説明するオプションのメタデータを格納し、Message クラスによってカプセル化されます。A message header contains optional metadata that describe a message encapsulated by the Message class.

Message は、アプリケーション固有のメッセージ内の情報を渡すための拡張メカニズムとして使用されるヘッダーを持つことができます。A Message can have zero or more headers that are used as an extension mechanism to pass information in messages that are application-specific. Headers を使用して、Add メソッドを呼び出すことにより、メッセージ ヘッダーをメッセージに追加します。You can use Headers to add message headers to a message by calling the Add method.

Windows Communication Foundation (WCF) には、いくつかの定義済みメッセージヘッダーが用意されています。Windows Communication Foundation (WCF) provides a number of predefined message headers:

ヘッダー名Header Name 説明Description
終了To メッセージのターゲットのロールを格納します。Contains the role that the message is targeting.
アクションAction メッセージの処理方法の説明を提供します。Provides a description of how the message should be processed.
FaultToFaultTo エラーの送信先となるノードのアドレスを格納します。Contains the address of the node to which faults should be sent.
FromFrom メッセージを送ったノードのアドレスを格納します。Contains the address of the node that sent the message.
要求Request メッセージが要求かどうかを示します。Indicates whether the message is a request.
MessageIDMessageID メッセージの一意の ID を格納します。Contains the unique ID of the message.
RelatesToRelatesTo このメッセージに関連するメッセージの ID を格納します。Contains the IDs of messages that are related to this message.
ReplyToReplyTo 要求の応答の送信先となるノードのアドレスを格納します。Contains the address of the node to which a reply should be sent for a request.

コンストラクター

MessageHeaders(MessageHeaders)

指定したメッセージ ヘッダーのコレクションを使用して、MessageHeaders クラスの新しいインスタンスを初期化します。Initializes a new instance of the MessageHeaders class with the specified collection of message headers.

MessageHeaders(MessageVersion)

指定したメッセージ バージョンを使用して、MessageHeaders クラスの新しいインスタンスを初期化します。Initializes a new instance of the MessageHeaders class with the specified message version.

MessageHeaders(MessageVersion, Int32)

指定したメッセージ バージョンとサイズを使用して、MessageHeaders クラスの新しいインスタンスを初期化します。Initializes a new instance of the MessageHeaders class with the specified message version and size.

プロパティ

Action

メッセージの処理方法の説明を取得または設定します。Gets or sets a description of how the message should be processed.

Count

このコレクションに含まれるメッセージ ヘッダーの数を取得します。Gets the number of message headers in this collection.

FaultTo

エラーの送信先となるノードのアドレスを取得または設定します。Gets or sets the address of the node to which faults should be sent.

From

メッセージを送信したノードのアドレスを取得または設定します。Gets or sets the address of the node that sent the message.

Item[Int32]

指定したインデックス位置にあるヘッダーを取得します。Retrieves a header at the given index.

MessageId

メッセージの一意の ID を取得または設定します。Gets or sets the unique ID of the message.

MessageVersion

メッセージの SOAP バージョンを取得します。Gets the SOAP version of the message.

RelatesTo

このメッセージに関連するメッセージの ID を取得します。Gets the IDs of messages that are related to this message.

ReplyTo

要求の応答の送信先となるノードのアドレスを取得または設定します。Gets or sets the address of the node to which a reply should be sent for a request.

To

メッセージの送信先エンドポイントを取得または設定します。Gets or sets the destination endpoint of a message.

UnderstoodHeaders

SOAP 1.1/1.2 仕様に従って、認識する必要があるすべてのメッセージ ヘッダーを取得します。Gets all the message headers that must be understood, according to SOAP 1.1/1.2 specification.

メソッド

Add(MessageHeader)

指定したメッセージ ヘッダーをコレクションに追加します。Adds the specified message header to the collection.

Clear()

コレクションからすべてのヘッダーを削除します。Removes all the headers from the collection.

CopyHeaderFrom(Message, Int32)

指定したメッセージの指定したインデックスにあるヘッダーの内容を、このインスタンスにコピーします。Copies the header content located at the specified index from the specified message to this instance.

CopyHeaderFrom(MessageHeaders, Int32)

指定したメッセージ ヘッダー コレクションの指定したインデックスにあるヘッダーの内容を、このインスタンスにコピーします。Copies the header content located at the specified index from the specified message header collection to this instance.

CopyHeadersFrom(Message)

指定したメッセージからこのインスタンスに、すべてのヘッダーの内容をコピーします。Copies the content of all the headers from the specified message to this instance.

CopyHeadersFrom(MessageHeaders)

指定したヘッダー コレクションからこのインスタンスに、内容をコピーします。Copies the content from the specified header collection to this instance.

CopyTo(MessageHeaderInfo[], Int32)

このコレクションから配列にヘッダーをコピーします。コピーは配列内の特定のインデックスから開始されます。Copies the headers from this collection to an array, starting at a particular index of the array.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
FindHeader(String, String)

ヘッダー要素の LocalName と名前空間 URI を指定して、このコレクション内のメッセージ ヘッダーを検索します。Finds a message header in this collection by the specified LocalName and namespace URI of the header element.

FindHeader(String, String, String[])

ヘッダー要素の LocalName、名前空間 URI、およびアクターを指定して、このコレクション内のメッセージ ヘッダーを検索します。Finds a message header in this collection by the specified LocalName, namespace URI and actors of the header element.

GetEnumerator()

コレクションを反復処理する列挙子を返します。Returns an enumerator for iterating through the collection. このメソッドは継承できません。This method cannot be inherited.

GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetHeader<T>(Int32)

このコレクション内の特定の位置にあるメッセージ ヘッダーを取得します。Retrieves a message header at a specific position in this collection.

GetHeader<T>(Int32, XmlObjectSerializer)

このコレクション内の特定の位置にあるメッセージ ヘッダーを取得します。Retrieves a message header at a specific position in this collection.

GetHeader<T>(String, String)

ヘッダー要素の LocalName と名前空間 URI を指定して、このコレクション内のメッセージ ヘッダーを検索します。Finds a message header in this collection by the specified LocalName and namespace URI of the header element.

GetHeader<T>(String, String, String[])

ヘッダー要素の LocalName、名前空間 URI、およびアクターを指定して、このコレクション内のメッセージ ヘッダーを取得します。Retrieves a message header in this collection by the specified LocalName, namespace URI and actors of the header element.

GetHeader<T>(String, String, XmlObjectSerializer)

LocalName、名前空間 URI、およびシリアライザーを指定して、このコレクション内のメッセージ ヘッダーを取得します。Retrieves a message header in this collection by the specified LocalName, namespace URI and serializer.

GetReaderAtHeader(Int32)

コレクションの指定した位置にあるメッセージ ヘッダーを使用する XML ディクショナリ リーダーを取得します。Gets a XML dictionary reader that consumes the message header at the specified location of the collection.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
HaveMandatoryHeadersBeenUnderstood()

MustUnderstand に設定されているすべてのメッセージ ヘッダーが適切に解釈されて処理されたかどうかを検証します。Verifies whether all the message headers marked with MustUnderstand have been properly interpreted and processed.

HaveMandatoryHeadersBeenUnderstood(String[])

指定した受信先が、MustUnderstand でマークされているすべてのメッセージ ヘッダーを適切に解釈して処理したかどうかを検証します。Verifies whether the specified recipients have properly interpreted and processed all the message headers marked with MustUnderstand.

Insert(Int32, MessageHeader)

コレクション内の指定したインデックス位置に、メッセージ ヘッダーを挿入します。Inserts a message header into the collection at the specified index.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
RemoveAll(String, String)

指定した名前および名前空間のすべてのヘッダーを、コレクションから削除します。Removes all headers with the specified name and namespace from the collection.

RemoveAt(Int32)

コレクション内の指定したインデックス位置にあるメッセージ ヘッダーを削除します。Removes the message header at the specified index from the collection.

SetAction(XmlDictionaryString)

ヘッダーのアクション要素を設定します。Sets the action element of the header.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)
WriteHeader(Int32, XmlDictionaryWriter)

指定した XML ライターを使用して、指定した位置からのヘッダーをシリアル化します。Serializes the header from the specified location using the specified XML writer.

WriteHeader(Int32, XmlWriter)

指定した XML ライターを使用して、指定した位置からのヘッダーをシリアル化します。Serializes the header from the specified location using the specified XML writer.

WriteHeaderContents(Int32, XmlDictionaryWriter)

指定した XML ライターを使用して、指定したヘッダーの内容をシリアル化します。Serializes the specified header content using the specified XML writer.

WriteHeaderContents(Int32, XmlWriter)

指定した XML ライターを使用して、指定したヘッダーの内容をシリアル化します。Serializes the specified header content using the specified XML writer.

WriteStartHeader(Int32, XmlDictionaryWriter)

指定した XML ライターを使用して、開始ヘッダーをシリアル化します。Serializes the start header using the specified XML writer.

WriteStartHeader(Int32, XmlWriter)

指定した XML ライターを使用して、開始ヘッダーをシリアル化します。Serializes the start header using the specified XML writer.

明示的なインターフェイスの実装

IEnumerable.GetEnumerator()

コレクションを反復処理する列挙子を返します。Returns an enumerator for iterating through the collection. このメソッドは継承できません。This method cannot be inherited.

拡張メソッド

CopyToDataTable<T>(IEnumerable<T>)

指定した入力 DataTable オブジェクトに応じて (ジェネリック パラメーター TDataRow)、IEnumerable<T> オブジェクトのコピーを格納する DataRow を返します。Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

ソース コレクション内のすべてのノードの先祖が格納された、要素のコレクションを返します。Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName)

ソース コレクション内のすべてのノードの先祖が格納され、フィルター処理された要素のコレクションを返します。Returns a filtered collection of elements that contains the ancestors of every node in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

ソース コレクション内のすべてのドキュメントおよび要素の子孫ノードのコレクションを返します。Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

ソース コレクション内のすべての要素とドキュメントの子孫要素が格納された要素のコレクションを返します。Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName)

ソース コレクション内のすべての要素とドキュメントの子孫要素が格納され、フィルター処理された要素のコレクションを返します。Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

ソース コレクション内のすべての要素およびドキュメントの子要素のコレクションを返します。Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName)

ソース コレクション内のすべての要素およびドキュメントの、フィルター処理された子要素のコレクションを返します。Returns a filtered collection of the child elements of every element and document in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

ソース コレクション内のすべてのノードがドキュメント順に並べ替えて格納された、ノードのコレクションを返します。Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

ソース コレクション内のすべてのドキュメントおよび要素の子ノードのコレクションを返します。Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

ソース コレクション内の親ノードからすべてのノードを削除します。Removes every node in the source collection from its parent node.

適用対象