IReplyChannel.ReceiveRequest 方法

定义

如果有可用的上下文,则返回接收到的请求的上下文。

重载

ReceiveRequest()

如果有可用的上下文,则返回接收到的请求的上下文。 如果没有可用的上下文,则等到有可用上下文为止。

ReceiveRequest(TimeSpan)

如果有可用的上下文,则返回接收到的请求的上下文。 如果没有可用的上下文,则等到有可用上下文为止。

ReceiveRequest()

如果有可用的上下文,则返回接收到的请求的上下文。 如果没有可用的上下文,则等到有可用上下文为止。

public:
 System::ServiceModel::Channels::RequestContext ^ ReceiveRequest();
public System.ServiceModel.Channels.RequestContext ReceiveRequest ();
abstract member ReceiveRequest : unit -> System.ServiceModel.Channels.RequestContext
Public Function ReceiveRequest () As RequestContext

返回

RequestContext

用于构造回复的 RequestContext

示例

下面的代码演示如何实现此方法:

public RequestContext ReceiveRequest()
{
    return ReceiveRequest(DefaultReceiveTimeout);
}

注解

RequestContext 包装请求消息和用于回复该消息的机制。

ReceiveRequest 可以被多次调用或并发调用。 对于每个接收的请求,仅完成一次 ReceiveRequest 调用。

如果接收的请求消息大于使用的绑定所允许的最大消息大小,则将引发 QuotaExceededException。 最大消息大小由 MaxReceivedMessageSize 属性设置。 默认值为 65536 个字节。

适用于

ReceiveRequest(TimeSpan)

如果有可用的上下文,则返回接收到的请求的上下文。 如果没有可用的上下文,则等到有可用上下文为止。

public:
 System::ServiceModel::Channels::RequestContext ^ ReceiveRequest(TimeSpan timeout);
public System.ServiceModel.Channels.RequestContext ReceiveRequest (TimeSpan timeout);
abstract member ReceiveRequest : TimeSpan -> System.ServiceModel.Channels.RequestContext
Public Function ReceiveRequest (timeout As TimeSpan) As RequestContext

参数

timeout
TimeSpan

一个 TimeSpan,指定接收请求操作的完成时限,在此时限之后操作将超时并返回 false

返回

RequestContext

用于构造回复的 RequestContext

示例

下面的代码演示如何实现此方法:

public RequestContext ReceiveRequest(TimeSpan timeout)
{
    RequestContext requestContext;
    while (true)
    {
        requestContext = this.InnerChannel.ReceiveRequest(timeout);
        if (ProcessRequestContext(ref requestContext))
        {
            break;
        }
    }

    return requestContext;
}

注解

RequestContext 包装请求消息和用于回复该消息的机制。

ReceiveRequest 可以被多次调用或并发调用。 对于每个接收的请求,仅完成一次 ReceiveRequest 调用。

如果接收的请求消息大于使用的绑定所允许的最大消息大小,则将引发 QuotaExceededException。 最大消息大小由 MaxReceivedMessageSize 属性设置。 默认值为 65536 个字节。

适用于