次の方法で共有


IRequestChannel.Request メソッド

定義

メッセージ ベースの要求を送信し、対応するメッセージ ベースの応答を返します。

オーバーロード

Request(Message)

メッセージ ベースの要求を送信し、対応するメッセージ ベースの応答を返します。

Request(Message, TimeSpan)

指定した時間内に、メッセージ ベースの要求を送信し、対応するメッセージ ベースの応答を返します。

Request(Message)

ソース:
IRequestChannel.cs
ソース:
IRequestChannel.cs
ソース:
IRequestChannel.cs

メッセージ ベースの要求を送信し、対応するメッセージ ベースの応答を返します。

public:
 System::ServiceModel::Channels::Message ^ Request(System::ServiceModel::Channels::Message ^ message);
public System.ServiceModel.Channels.Message Request (System.ServiceModel.Channels.Message message);
abstract member Request : System.ServiceModel.Channels.Message -> System.ServiceModel.Channels.Message
Public Function Request (message As Message) As Message

パラメーター

message
Message

転送される要求 Message

戻り値

要求に対する応答として受信した Message

次のコードは、このメソッドを実装する方法を示しています。

public Message Request(Message message)
{
    return this.InnerChannel.Request(message);
}

注釈

IRequestChannel の実装により、応答メッセージが要求メッセージと確実に関連付けられます。

一般に、IRequestChannel の実装では、保留中の要求に関連付けられていないメッセージを受信すると、そのメッセージは削除されます。

Request メソッドは、複数のスレッドで同時に呼び出すことができます。

メッセージを要求チャネルに渡すと、メッセージにアクセスされます。 Request を呼び出した後は、メッセージの検査、そのメッセージでの Close の呼び出しはできなくなります。

要求メッセージが、使用されるバインドで許可されている最大メッセージ サイズを超える場合は、QuotaExceededException がスローされます。 最大メッセージ サイズは、MaxReceivedMessageSize プロパティで設定されます。 既定値は 65536 バイトです。

適用対象

Request(Message, TimeSpan)

ソース:
IRequestChannel.cs
ソース:
IRequestChannel.cs
ソース:
IRequestChannel.cs

指定した時間内に、メッセージ ベースの要求を送信し、対応するメッセージ ベースの応答を返します。

public:
 System::ServiceModel::Channels::Message ^ Request(System::ServiceModel::Channels::Message ^ message, TimeSpan timeout);
public System.ServiceModel.Channels.Message Request (System.ServiceModel.Channels.Message message, TimeSpan timeout);
abstract member Request : System.ServiceModel.Channels.Message * TimeSpan -> System.ServiceModel.Channels.Message
Public Function Request (message As Message, timeout As TimeSpan) As Message

パラメーター

message
Message

転送される要求 Message

timeout
TimeSpan

応答受信の制限時間を指定する TimeSpan

戻り値

要求に対する応答として受信した Message

次のコードは、このメソッドを実装する方法を示しています。

public Message Request(Message message, TimeSpan timeout)
{
    return this.InnerChannel.Request(message, timeout);
}

注釈

IRequestChannel の実装により、応答メッセージが要求メッセージと確実に関連付けられます。

一般に、IRequestChannel の実装では、保留中の要求に関連付けられていないメッセージを受信すると、そのメッセージは削除されます。

Request メソッドは、複数のスレッドで同時に呼び出すことができます。

メッセージを要求チャネルに渡すと、メッセージにアクセスされます。 Request を呼び出した後は、メッセージの検査、そのメッセージでの Close の呼び出しはできなくなります。

要求メッセージが、使用されるバインドで許可されている最大メッセージ サイズを超える場合は、QuotaExceededException がスローされます。 最大メッセージ サイズは、MaxReceivedMessageSize プロパティで設定されます。 既定値は 65536 バイトです。

関数の呼び出し時に timeout が渡された場合は、その値が使用されます。 バインドで SendTimeout が設定されている場合は、関数の呼び出し時に timeout が指定されないと、バインドでの値が使用されます。

バインドでも、関数の呼び出し時にも、タイムアウトが指定されていない場合は、DefaultSendTimeout が使用されます。 既定値は 1 分です。

注意 (実装者)

操作を完了する前に指定した TimeoutException が経過した場合、操作は timeout をスローする必要があります。

適用対象