情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

IRequestChannel インターフェイス

2013/12/12

メッセージングのエンドポイント間の要求応答通信の要求側で実装されなければならないチャネルのコントラクトを定義します。

Namespace:  System.ServiceModel.Channels
アセンブリ:  System.ServiceModel (System.ServiceModel.dll 内)

public interface IRequestChannel : IChannel, 
	ICommunicationObject

IRequestChannel 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック プロパティRemoteAddress要求チャネルからメッセージを送信する先のリモート アドレスを取得します。
パブリック プロパティState通信指向オブジェクトの現在の状態を取得します。 (ICommunicationObject から継承されます。)
パブリック プロパティVia要求の送信先となるトランスポート アドレスを取得します。
このページのトップへ

  名前説明
パブリック メソッドAbort通信オブジェクトを現在の状態から閉じた状態へすぐに推移させます。 (ICommunicationObject から継承されます。)
パブリック メソッドBeginClose(AsyncCallback, Object)通信オブジェクトを閉じるための非同期操作を開始します。 (ICommunicationObject から継承されます。)
パブリック メソッドBeginClose(TimeSpan, AsyncCallback, Object)通信オブジェクトを閉じる非同期操作を指定されたタイムアウトで開始します。 (ICommunicationObject から継承されます。)
パブリック メソッドBeginOpen(AsyncCallback, Object)通信オブジェクトを開くための非同期操作を開始します。 (ICommunicationObject から継承されます。)
パブリック メソッドBeginOpen(TimeSpan, AsyncCallback, Object)通信オブジェクトを開く非同期操作を指定された時間制限で開始します。 (ICommunicationObject から継承されます。)
パブリック メソッドBeginRequest(Message, AsyncCallback, Object)要求応答メッセージ交換の応答側に要求メッセージを送信するための非同期操作を開始します。
パブリック メソッドBeginRequest(Message, TimeSpan, AsyncCallback, Object)指定された時間内に要求メッセージを要求返信メッセージ交換の返信側へ送信するための非同期操作を開始します。
パブリック メソッドClose()通信オブジェクトを現在の状態から閉じた状態へ推移させます。 (ICommunicationObject から継承されます。)
パブリック メソッドClose(TimeSpan)通信オブジェクトを現在の状態から閉じた状態へ推移させます。 (ICommunicationObject から継承されます。)
パブリック メソッドEndClose通信オブジェクトを閉じるための非同期操作を完了します。 (ICommunicationObject から継承されます。)
パブリック メソッドEndOpen通信オブジェクトを開くための非同期操作を完了します。 (ICommunicationObject から継承されます。)
パブリック メソッドEndRequest送信された要求へメッセージ ベースの応答を返すための非同期操作を完了します。
パブリック メソッドGetProperty<T>チャネル スタック内の適切なレイヤーから要求された型指定オブジェクトがある場合は、それを返します。 (IChannel から継承されます。)
パブリック メソッドOpen()通信オブジェクトを作成済みの状態から開いた状態へ推移させます。 (ICommunicationObject から継承されます。)
パブリック メソッドOpen(TimeSpan)指定された時間内に、通信オブジェクトを作成済みの状態から開いた状態へ推移させます。 (ICommunicationObject から継承されます。)
パブリック メソッドRequest(Message)メッセージ ベースの要求を送信し、相互関係のあるメッセージ ベースの応答を返します。
パブリック メソッドRequest(Message, TimeSpan)指定された時間内に、メッセージ ベースの要求を送信し、相互関係のあるメッセージ ベースの応答を返します。
このページのトップへ

  名前説明
パブリック イベントClosed通信オブジェクトの閉じる処理中の状態から閉じた状態への変遷が完了したときに発生します。 (ICommunicationObject から継承されます。)
パブリック イベントClosing通信オブジェクトが初めて閉じる処理中の状態に入ったときに発生します。 (ICommunicationObject から継承されます。)
パブリック イベントFaulted通信オブジェクトが初めてエラー発生状態に入ったときに発生します。 (ICommunicationObject から継承されます。)
パブリック イベントOpened通信オブジェクトの開く処理中の状態から開いた状態への変遷が完了したときに発生します。 (ICommunicationObject から継承されます。)
パブリック イベントOpening通信オブジェクトが初めて開く処理中の状態に入ったときに発生します。 (ICommunicationObject から継承されます。)
このページのトップへ

IRequestChannel は、応答メッセージを返す Request(Message) メソッドの同期および非同期のバリアントを定義しています。また、要求メッセージの送信先のエンドポイント アドレスと URI を取得するための、RemoteAddress および Via プロパティも提供します。


// Initialize request channel factory with a binding and a remote endpoint address.
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://localhost:8000/ChannelApp");
ChannelFactory<IRequestChannel> factory =
    new ChannelFactory<IRequestChannel>(binding, address);

// Create an IRequestChannel object and open it.
IRequestChannel channel = factory.CreateChannel();
channel.Open();

// Get the endpoint address for the channel.
EndpointAddress epa = channel.RemoteAddress;

// Get the transport address for the channel.
Uri via = channel.Via;

// Send a request message on  the channel.
Message request = Message.CreateMessage(MessageVersion.Soap11, "hello");

// Request  sent and correlated with a reply message.
Message reply = channel.Request(request);

reply.Close();
channel.Close();
factory.Close();


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: