IRequestChannel Interface
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Defines the contract that a channel must implement to be on the requesting side of a request-reply communication between messaging endpoints.
Namespace: System.ServiceModel.Channels
Assembly: System.ServiceModel (in System.ServiceModel.dll)
Syntax
'Declaration
Public Interface IRequestChannel _
Inherits IChannel, ICommunicationObject
public interface IRequestChannel : IChannel,
ICommunicationObject
The IRequestChannel type exposes the following members.
Properties
Name | Description | |
---|---|---|
RemoteAddress | Gets the remote address to which the request channel sends messages. | |
State | Gets the current state of the communication-oriented object. (Inherited from ICommunicationObject.) | |
Via | Gets the transport address to which the request is send. |
Top
Methods
Name | Description | |
---|---|---|
Abort | Causes a communication object to transition immediately from its current state into the closed state. (Inherited from ICommunicationObject.) | |
BeginClose(AsyncCallback, Object) | Begins an asynchronous operation to close a communication object. (Inherited from ICommunicationObject.) | |
BeginClose(TimeSpan, AsyncCallback, Object) | Begins an asynchronous operation to close a communication object with a specified time-out. (Inherited from ICommunicationObject.) | |
BeginOpen(AsyncCallback, Object) | Begins an asynchronous operation to open a communication object. (Inherited from ICommunicationObject.) | |
BeginOpen(TimeSpan, AsyncCallback, Object) | Begins an asynchronous operation to open a communication object within a specified interval of time. (Inherited from ICommunicationObject.) | |
BeginRequest(Message, AsyncCallback, Object) | Begins an asynchronous operation to transmit a request message to the reply-side of a request-reply message exchange. | |
BeginRequest(Message, TimeSpan, AsyncCallback, Object) | Begins an asynchronous operation to transmit a request message to the reply-side of a request-reply message exchange within a specified interval of time. | |
Close() | Causes a communication object to transition from its current state into the closed state. (Inherited from ICommunicationObject.) | |
Close(TimeSpan) | Causes a communication object to transition from its current state into the closed state. (Inherited from ICommunicationObject.) | |
EndClose | Completes an asynchronous operation to close a communication object. (Inherited from ICommunicationObject.) | |
EndOpen | Completes an asynchronous operation to open a communication object. (Inherited from ICommunicationObject.) | |
EndRequest | Completes an asynchronous operation to return a message-based response to a transmitted request. | |
GetProperty<T> | Returns a typed object requested, if present, from the appropriate layer in the channel stack. (Inherited from IChannel.) | |
Open() | Causes a communication object to transition from the created state into the opened state. (Inherited from ICommunicationObject.) | |
Open(TimeSpan) | Causes a communication object to transition from the created state into the opened state within a specified interval of time. (Inherited from ICommunicationObject.) | |
Request(Message) | Sends a message-based request and returns the correlated message-based response. | |
Request(Message, TimeSpan) | Sends a message-based request and returns the correlated message-based response within a specified interval of time. |
Top
Events
Name | Description | |
---|---|---|
Closed | Occurs when the communication object completes its transition from the closing state into the closed state. (Inherited from ICommunicationObject.) | |
Closing | Occurs when the communication object first enters the closing state. (Inherited from ICommunicationObject.) | |
Faulted | Occurs when the communication object first enters the faulted state. (Inherited from ICommunicationObject.) | |
Opened | Occurs when the communication object completes its transition from the opening state into the opened state. (Inherited from ICommunicationObject.) | |
Opening | Occurs when the communication object first enters the opening state. (Inherited from ICommunicationObject.) |
Top
Remarks
The IRequestChannel defines synchronous and asynchronous variants of an Request(Message) method that returns a response message. It also provides a RemoteAddress and Via properties to retrieve the endpoint address and URI to which the request message is sent.
Examples
' Initialize request channel factory with a binding and a remote endpoint address.
Dim binding As New BasicHttpBinding()
Dim address As New EndpointAddress("https://localhost:8000/ChannelApp")
Dim factory As New ChannelFactory(Of IRequestChannel)(binding, address)
' Create an IRequestChannel object and open it.
Dim channel As IRequestChannel = factory.CreateChannel()
channel.Open()
' Get the endpoint address for the channel.
Dim epa As EndpointAddress = channel.RemoteAddress
' Get the transport address for the channel.
Dim via As Uri = channel.Via
' Send a request message on the channel.
Dim request As Message = Message.CreateMessage(MessageVersion.Soap11, "hello")
' Request sent and correlated with a reply message.
Dim reply As Message = channel.Request(request)
reply.Close()
channel.Close()
factory.Close()
// Initialize request channel factory with a binding and a remote endpoint address.
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("https://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();
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.