IRequestChannel 接口

2013/12/13

定义一个协定,通道必须实现该协定,才能成为消息传递终结点之间的请求-应答通信的请求端。

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) 方法的同步和异步变量。它还提供 RemoteAddressVia 属性,以检索终结点地址和请求消息发送到的 URI。


// 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

Windows Phone

显示:
© 2014 Microsoft