IChannel Interface


Provides conduits for messages that cross remoting boundaries.

public interface class IChannel
public interface IChannel
public interface IChannel
type IChannel = interface
type IChannel = interface
Public Interface IChannel


Remoting boundaries can be Contexts, AppDomains, processes, or computers. An application can cross these boundaries only by using channels. These crossings can be inbound and outbound. A channel can listen on an endpoint for inbound messages, send to an endpoint for outbound messages, or both. This provides an extensibility point in the runtime to plug in a wide range protocols, even though the runtime might not be at the other end of the channel.

Run-time objects can be used to represent a wide and rich set of semantics and entities. The channel provides the extensibility point to convert the messages to and from the specific protocols. If there are runtimes at both ends of the channel, a virtual channel is created between the two ends, in order to connect the client and server sink chains on either side of the boundary.

The client part of the channel is located at the end of a client context sink chain. The server part of the channel is located at the start of the server context sink chain. Messages are delivered to the client channel using the IMessageSink interface, travel through the channel, and are then received by the server channel. The server channel delivers the message to the first server context sink.

Channels must expose the IChannel interface, which provides informational properties such as the ChannelName and ChannelPriority properties. Channels can be registered using the ChannelServices.RegisterChannel method.



Gets the name of the channel.


Gets the priority of the channel.


Parse(String, String)

Returns the object URI as an out parameter, and the URI of the current channel as the return value.

Applies to