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
Public propertySupported by Silverlight for Windows Phone RemoteAddress Gets the remote address to which the request channel sends messages.
Public propertySupported by Silverlight for Windows Phone State Gets the current state of the communication-oriented object. (Inherited from ICommunicationObject.)
Public propertySupported by Silverlight for Windows Phone Via Gets the transport address to which the request is send.

Top

Methods

  Name Description
Public methodSupported by Silverlight for Windows Phone Abort Causes a communication object to transition immediately from its current state into the closed state. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone BeginClose(AsyncCallback, Object) Begins an asynchronous operation to close a communication object. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone BeginClose(TimeSpan, AsyncCallback, Object) Begins an asynchronous operation to close a communication object with a specified time-out. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone BeginOpen(AsyncCallback, Object) Begins an asynchronous operation to open a communication object. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone BeginOpen(TimeSpan, AsyncCallback, Object) Begins an asynchronous operation to open a communication object within a specified interval of time. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone BeginRequest(Message, AsyncCallback, Object) Begins an asynchronous operation to transmit a request message to the reply-side of a request-reply message exchange.
Public methodSupported by Silverlight for Windows Phone 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.
Public methodSupported by Silverlight for Windows Phone Close() Causes a communication object to transition from its current state into the closed state. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone Close(TimeSpan) Causes a communication object to transition from its current state into the closed state. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone EndClose Completes an asynchronous operation to close a communication object. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone EndOpen Completes an asynchronous operation to open a communication object. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone EndRequest Completes an asynchronous operation to return a message-based response to a transmitted request.
Public methodSupported by Silverlight for Windows Phone GetProperty<T> Returns a typed object requested, if present, from the appropriate layer in the channel stack. (Inherited from IChannel.)
Public methodSupported by Silverlight for Windows Phone Open() Causes a communication object to transition from the created state into the opened state. (Inherited from ICommunicationObject.)
Public methodSupported by Silverlight for Windows Phone 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.)
Public methodSupported by Silverlight for Windows Phone Request(Message) Sends a message-based request and returns the correlated message-based response.
Public methodSupported by Silverlight for Windows Phone 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
Public eventSupported by Silverlight for Windows Phone Closed Occurs when the communication object completes its transition from the closing state into the closed state. (Inherited from ICommunicationObject.)
Public eventSupported by Silverlight for Windows Phone Closing Occurs when the communication object first enters the closing state. (Inherited from ICommunicationObject.)
Public eventSupported by Silverlight for Windows Phone Faulted Occurs when the communication object first enters the faulted state. (Inherited from ICommunicationObject.)
Public eventSupported by Silverlight for Windows Phone Opened Occurs when the communication object completes its transition from the opening state into the opened state. (Inherited from ICommunicationObject.)
Public eventSupported by Silverlight for Windows Phone 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.