System.Runtime.Remoting.Channels.Http.HttpClientChannel Class

Assembly: System.Runtime.Remoting.dll
Namespace: System.Runtime.Remoting.Channels.Http
Summary
Provides an implementation for a client channel that uses the HTTP protocol to transmit messages.
C# Syntax:
public class HttpClientChannel : BaseChannelWithProperties, IChannelSender, IChannel
Remarks
The HttpClientChannel transports messages to remote objects using the SOAP protocol. By default, all messages are passed through the SOAP formatter, where the message is changed into XML and serialized, and the required SOAP headers are added to the stream. The binary formatter can also be specified, which results in a binary data stream. The data stream is then transported to the target URI using the HTTP protocol.

Channels transport messages between applications across remoting boundaries (for example application domains, processes, and machines). These crossings include both inbound and outbound.

If there are common language runtimes at both ends of the channel, then a session is created between the two ends, to connect the client and server sink chains on either side of the boundary together. The client channel is located at the end of client context sink chain. The server channel is located at the start of the server context sink chain. Messages are delivered to the client channel, travel through it, and are received by the HttpServerChannel. The server channel then deserializes the messages and delivers them to the first server context sink.

IChannel implementations use channel configuration properties to configure the channel at run time. Channel properties can be specified in a configuration file, or programmatically, inside of an IDictionary. In a configuration file, all values are represented by strings, but when building a property IDictionary programmatically, value types can be specified with their native values or with strings.

The following table shows the channel configuration properties that can be specified for the current channel.



Property Description
name Indicates the name of the channel. This property is used to retrieve a specific channel when calling ChannelServices.GetChannel . If this property is not set, the system defaults to "http". If you want to register more than one HttpChannel , each must have a unique name. Set this property to the String.Empty string ("") if you want to ignore names and avoid naming collisions. The system will allow any number of channels with the String.Empty name.
priority An integer representing the priority assigned to this channel. Higher numbers indicate a higher chance of being chosen to connect first. The default priority is 1, and negative numbers are allowed.
clientConnectionLimit An integer indicating how many connections can be simultaneously opened to a given server. The default is 2.
proxyName The name of the proxy computer.
proxyPort An integer specifying the proxy port.
machineName A string that specifies the machine name used with the current channel. Overrides the machine name specified in the channel data object.
See also:
System.Runtime.Remoting.Channels.Http Namespace

System.Runtime.Remoting.Channels.Http.HttpClientChannel Member List:

Public Constructors
ctor #1 Overloaded:
.ctor()

Default constructor. This constructor is called by derived class constructors to initialize state in this type.
Initializes a new instance of the HttpClientChannel class with default values.
ctor #2 Overloaded:
.ctor(IDictionary properties, IClientChannelSinkProvider sinkProvider)

Initializes a new instance of the HttpClientChannel class with the specified channel properties and IClientChannelSinkProvider.
ctor #3 Overloaded:
.ctor(string name, IClientChannelSinkProvider sinkProvider)

Initializes a new instance of the HttpClientChannel class with the specified channel name and IClientChannelSinkProvider.
Public Properties
ChannelName Read-only

Gets the name of the current channel.
ChannelPriority Read-only

Returns the priority of the current channel.
Count
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
Read-only

See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Count


Gets the number of properties associated with the current channel object.
IsFixedSize
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
Read-only

See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.IsFixedSize


Gets a Boolean value indicating whether the number of properties that can be entered into the current channel object is fixed.
IsReadOnly
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
Read-only

See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.IsReadOnly


Gets a Boolean value indicating whether the collection of properties in the current channel object is read-only.
IsSynchronized
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
Read-only

See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.IsSynchronized


Gets a value indicating whether the current dictionary of channel object properties is synchronized.
Item Read-write

Overridden:
Gets or sets a channel property associated with the specified key.
Keys Read-only

Overridden:
Gets an ICollection of keys that the channel properties are associated with.
Properties
(inherited from System.Runtime.Remoting.Channels.BaseChannelWithProperties)
Read-only

See base class member description: System.Runtime.Remoting.Channels.BaseChannelWithProperties.Properties


Gets an IDictionary of the channel properties associated with the current channel object.
SyncRoot
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
Read-only

See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.SyncRoot


Gets an object that is used to synchronize access to the BaseChannelObjectWithProperties.
Values
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
Read-only

See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Values


Gets an ICollection of the values of the properties associated with the current channel object.
Public Methods
Add
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Add


The current method must not be implemented because it does not apply to the way IDictionary is being used in this case, and because BaseChannelObjectWithProperties.IsFixedSize returns true.
Clear
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Clear


The current method must not be implemented because it does not apply to the way IDictionary is being used in this case, and because BaseChannelObjectWithProperties.IsFixedSize returns true.
Contains
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Contains


Returns a Boolean value indicating whether the current channel object contains a property associated with the specified key.
CopyTo
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.CopyTo


The current method is not supported by the BaseChannelObjectWithProperties.
CreateMessageSink Returns a channel message sink that delivers messages to the specified URL or channel data object.
Equals
(inherited from System.Object)
See base class member description: System.Object.Equals

Derived from System.Object, the primary base class for all objects.
GetEnumerator
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.GetEnumerator


Returns an IDictionaryEnumerator that enumerates over all the properties associated with the current channel object.
GetHashCode
(inherited from System.Object)
See base class member description: System.Object.GetHashCode

Derived from System.Object, the primary base class for all objects.
GetType
(inherited from System.Object)
See base class member description: System.Object.GetType

Derived from System.Object, the primary base class for all objects.
Parse Extracts the channel URI and the remote well-known object URI from the specified URL.
Remove
(inherited from System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties)
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Remove


The current method must not be implemented because it does not apply to the way IDictionary is being used in this case, and because BaseChannelObjectWithProperties.IsFixedSize returns true.
ToString
(inherited from System.Object)
See base class member description: System.Object.ToString

Derived from System.Object, the primary base class for all objects.
Protected Fields
SinksWithProperties
(inherited from System.Runtime.Remoting.Channels.BaseChannelWithProperties)
See base class member description: System.Runtime.Remoting.Channels.BaseChannelWithProperties.SinksWithProperties


Indicates the top channel sink in the channel sink stack.
Protected Methods
Finalize
(inherited from System.Object)
See base class member description: System.Object.Finalize

Derived from System.Object, the primary base class for all objects.
MemberwiseClone
(inherited from System.Object)
See base class member description: System.Object.MemberwiseClone

Derived from System.Object, the primary base class for all objects.

Hierarchy:


System.Runtime.Remoting.Channels.Http.HttpClientChannel Member Details

Overloaded ctor #1
Summary
Initializes a new instance of the HttpClientChannel class with default values.

Default constructor. This constructor is called by derived class constructors to initialize state in this type.
C# Syntax:
public HttpClientChannel();

Return to top


Overloaded ctor #2
Summary
Initializes a new instance of the HttpClientChannel class with the specified channel properties and IClientChannelSinkProvider.
C# Syntax:
public HttpClientChannel(
   IDictionary properties,
   IClientChannelSinkProvider sinkProvider
);
Parameters:

properties

An IDictionary of the channel properties that hold the configuration information for the current channel.

sinkProvider

The IClientChannelSinkProvider to use with the new instance of the HttpClientChannel.

Exceptions
Exception Type Condition
ArgumentException A provided channel property was badly formatted.
Remarks
Channel sinks provide a plug-in point that allows access to the underlying messages flowing through the channel as well as the stream used by the transport mechanism to send messages to a remote object. Channel sinks are also responsible for transporting messages between the client and the server.

Note For more information on channel sinks, see the conceptual topic at MSDN: sinkssinkchains.

Note Channel properties are used to configure the channel at run time. For a list of possible channel properties and an example, see the conceptual topic at MSDN: channelformatterconfigurationproperties.
See also:
MSDN: channelformatterconfigurationproperties

Return to top


Overloaded ctor #3
Summary
Initializes a new instance of the HttpClientChannel class with the specified channel name and IClientChannelSinkProvider.
C# Syntax:
public HttpClientChannel(
   string name,
   IClientChannelSinkProvider sinkProvider
);
Parameters:

name

The name of the new instance of the HttpClientChannel.

sinkProvider

The IClientChannelSinkProvider to use with the new instance of the HttpClientChannel.

Remarks
This constructor sets the HttpServerChannel.ChannelName property using the name parameter.

Return to top


Field: SinksWithProperties
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelWithProperties.SinksWithProperties

Summary
Indicates the top channel sink in the channel sink stack.
C# Syntax:
protected IChannelSinkBase SinksWithProperties;
Remarks
Channel sinks provide a plug-in point that allows access to the underlying messages flowing through the channel as well as the stream used by the transport mechanism to send messages to a remote object. Channel sinks are linked together in a chain of channel sink providers, and all channel messages flow through this chain of sinks before the messages are serialized and transported.

Return to top


Property: ChannelName (read-only)
Summary
Gets the name of the current channel.
C# Syntax:
public string ChannelName {get;}
Implements:
IChannel.ChannelName
Remarks
This property is used to retrieve a specific channel when calling ChannelServices.GetChannel. If this property is not set, the system defaults to "http". If you want to register more than one HttpClientChannel, each must have a unique name. Set this property to the String.Empty string ("") if you want to ignore names and avoid naming collisions. The system will allow any number of channels with the String.Empty name.

Return to top


Property: ChannelPriority (read-only)
Summary
Returns the priority of the current channel.
C# Syntax:
public int ChannelPriority {get;}
Implements:
IChannel.ChannelPriority
Remarks
Channels with a larger priority number have the first opportunity to connect to a given endpoint. The default priority is 1, and negative numbers are allowed.

Return to top


Property: Count (read-only)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Count

Summary
Gets the number of properties associated with the current channel object.
C# Syntax:
public virtual int Count {get;}
Implements:
ICollection.Count

Return to top


Property: IsFixedSize (read-only)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.IsFixedSize

Summary
Gets a Boolean value indicating whether the number of properties that can be entered into the current channel object is fixed.
C# Syntax:
public virtual bool IsFixedSize {get;}
Implements:
IDictionary.IsFixedSize
Remarks
In the current implementation BaseChannelObjectWithProperties.IsFixedSize returns true.

Return to top


Property: IsReadOnly (read-only)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.IsReadOnly

Summary
Gets a Boolean value indicating whether the collection of properties in the current channel object is read-only.
C# Syntax:
public virtual bool IsReadOnly {get;}
Implements:
IDictionary.IsReadOnly
Remarks
In the current implementation BaseChannelObjectWithProperties.IsReadOnly returns false.

Return to top


Property: IsSynchronized (read-only)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.IsSynchronized

Summary
Gets a value indicating whether the current dictionary of channel object properties is synchronized.
C# Syntax:
public virtual bool IsSynchronized {get;}
Implements:
ICollection.IsSynchronized
Remarks
The current implementation of BaseChannelObjectWithProperties.IsSynchronized returns false.

Return to top


Overridden Property: Item (read-write)
Summary
Gets or sets a channel property associated with the specified key.
C# Syntax:
public override object this[object key] {get; set;}
Parameters:

key

The key the requested property is associated with.

Implements:
IDictionary.Item
Remarks


Note Channel properties are used to configure the channel at run time. For a list of possible channel properties and an example, see the conceptual topic at MSDN: channelformatterconfigurationproperties.
See also:
MSDN: channelformatterconfigurationproperties

Return to top


Overridden Property: Keys (read-only)
Summary
Gets an ICollection of keys that the channel properties are associated with.
C# Syntax:
public override ICollection Keys {get;}
Implements:
IDictionary.Keys
Remarks


Note Channel properties are used to configure the channel at run time. For a list of possible channel properties and an example, see the conceptual topic at MSDN: channelformatterconfigurationproperties.
See also:
MSDN: channelformatterconfigurationproperties

Return to top


Property: Properties (read-only)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelWithProperties.Properties

Summary
Gets an IDictionary of the channel properties associated with the current channel object.
C# Syntax:
public override IDictionary Properties {get;}
Remarks
Channel properties are used to configure the channel at run time.

Return to top


Property: SyncRoot (read-only)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.SyncRoot

Summary
Gets an object that is used to synchronize access to the BaseChannelObjectWithProperties.
C# Syntax:
public virtual object SyncRoot {get;}
Implements:
ICollection.SyncRoot
Remarks
The current implementation of BaseChannelObjectWithProperties.SyncRoot returns a reference to the current instance of BaseChannelObjectWithProperties.

Return to top


Property: Values (read-only)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Values

Summary
Gets an ICollection of the values of the properties associated with the current channel object.
C# Syntax:
public virtual ICollection Values {get;}
Implements:
IDictionary.Values

Return to top


Method: Add(
   object key,
   object value
)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Add

Summary
The current method must not be implemented because it does not apply to the way IDictionary is being used in this case, and because BaseChannelObjectWithProperties.IsFixedSize returns true.
C# Syntax:
public virtual void Add(
   object key,
   object value
);
Parameters:

key

Indicates the key associated with the object contained in the value parameter.

value

Indicates the value to add.

Exceptions
Exception Type Condition
NotSupportedException The method was called.
Implements:
IDictionary.Add

Return to top


Method: Clear()
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Clear

Summary
The current method must not be implemented because it does not apply to the way IDictionary is being used in this case, and because BaseChannelObjectWithProperties.IsFixedSize returns true.
C# Syntax:
public virtual void Clear();
Exceptions
Exception Type Condition
NotSupportedException The method was called.
Implements:
IDictionary.Clear

Return to top


Method: Contains(
   object key
)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Contains

Summary
Returns a Boolean value indicating whether the current channel object contains a property associated with the specified key.
C# Syntax:
public virtual bool Contains(
   object key
);
Parameters:

key

The key the requested property is associated with.

Return Value:
A Boolean value indicating whether the current channel object contains a property associated with the specified key.
Implements:
IDictionary.Contains
Remarks

Return to top


Method: CopyTo(
   Array array,
   int index
)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.CopyTo

Summary
The current method is not supported by the BaseChannelObjectWithProperties.
C# Syntax:
public virtual void CopyTo(
   Array array,
   int index
);
Parameters:

array

The array to copy the properties to.

index

The index where to begin copying.

Exceptions
Exception Type Condition
NotSupportedException The method was called.
Implements:
ICollection.CopyTo

Return to top


Method: CreateMessageSink(
   string url,
   object remoteChannelData,
   out string objectURI
)
Summary
Returns a channel message sink that delivers messages to the specified URL or channel data object.
C# Syntax:
public virtual IMessageSink CreateMessageSink(
   string url,
   object remoteChannelData,
   out string objectURI
);
Parameters:

url

The URL to which the new sink will deliver messages. Can be null.

remoteChannelData

The channel data object of the remote host to which the new sink will deliver messages. Can be null.

objectURI

When this method returns, contains a URI of the new channel message sink that delivers messages to the specified URL or channel data object. This parameter is passed uninitialized.

Return Value:
A channel message sink that delivers messages to the specified URL or channel data object.
Implements:
IChannelSender.CreateMessageSink
Remarks
The HttpClientChannel.CreateMessageSink method returns a channel message sink that delivers messages to either the specified URL or the channel data object. If the uri parameter is null, remoteChannelData is used as a target for the sink. Either the url or remoteChannelData parameters can be null, but not both.

Return to top


Method: Equals(
   object obj
)
Inherited
See base class member description: System.Object.Equals
C# Syntax:
public virtual bool Equals(
   object obj
);

For more information on members inherited from System.Object click on the link above.

Return to top


Method: Finalize()
Inherited
See base class member description: System.Object.Finalize
C# Syntax:
~HttpClientChannel();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetEnumerator()
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.GetEnumerator

Summary
Returns an IDictionaryEnumerator that enumerates over all the properties associated with the current channel object.
C# Syntax:
public virtual IDictionaryEnumerator GetEnumerator();
Return Value:
An IDictionaryEnumerator that enumerates over all the properties associated with the current channel object.
Implements:
IDictionary.GetEnumerator

Return to top


Method: GetHashCode()
Inherited
See base class member description: System.Object.GetHashCode
C# Syntax:
public virtual int GetHashCode();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetType()
Inherited
See base class member description: System.Object.GetType
C# Syntax:
public Type GetType();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: MemberwiseClone()
Inherited
See base class member description: System.Object.MemberwiseClone
C# Syntax:
protected object MemberwiseClone();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: Parse(
   string url,
   out string objectURI
)
Summary
Extracts the channel URI and the remote well-known object URI from the specified URL.
C# Syntax:
public string Parse(
   string url,
   out string objectURI
);
Parameters:

url

The URL from which to extract the URI of the remote well-known object.

objectURI

When this method returns, contains a String that holds the URI of the remote well-known object. This parameter is passed uninitialized.

Return Value:
The URI of the current channel, or null if the specified URL is not an HTTP URL.
Implements:
IChannel.Parse
See also:
Uri

Return to top


Method: Remove(
   object key
)
Inherited
See base class member description: System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties.Remove

Summary
The current method must not be implemented because it does not apply to the way IDictionary is being used in this case, and because BaseChannelObjectWithProperties.IsFixedSize returns true.
C# Syntax:
public virtual void Remove(
   object key
);
Parameters:

key

The key that the object being removed is associated with.

Exceptions
Exception Type Condition
NotSupportedException The method was called.
Implements:
IDictionary.Remove

Return to top


Method: ToString()
Inherited
See base class member description: System.Object.ToString
C# Syntax:
public virtual string ToString();

For more information on members inherited from System.Object click on the link above.

Return to top


Top of page

Copyright (c) 2002 Microsoft Corporation. All rights reserved.