System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider Class

Provides the implementation for the binary client formatter sink provider.

See Also: BinaryClientFormatterSinkProvider Members


public class BinaryClientFormatterSinkProvider : IClientFormatterSinkProvider


A System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider creates client formatter sinks that use the System.Runtime.Serialization.Formatters.Binary.BinaryFormatter to serialize messages for the client channel through which remoting messages flow.

The function of the formatter sink is to generate the necessary headers and serialize the message to the stream. After the formatter sink, the System.Runtime.Remoting.Messaging.IMessage is forwarded to all sinks in the channel sink chain through the IClientChannelSink.ProcessMessage(System.Runtime.Remoting.Messaging.IMessage, ITransportHeaders, System.IO.Stream, ITransportHeaders@, System.IO.Stream@) or IClientChannelSink.AsyncProcessRequest(IClientChannelSinkStack, System.Runtime.Remoting.Messaging.IMessage, ITransportHeaders, System.IO.Stream) calls. At this stage, the message has already been serialized and is provided as information only. Sinks that need to create or modify the message must be placed in the sink chain before the formatter. You can do this by implementing both the System.Runtime.Remoting.Messaging.IMessageSink and System.Runtime.Remoting.Channels.IClientChannelSink interfaces. The formatter sink can then be placed in the sink chain later.

Formatter sinks use sink configuration properties to configure the channel at run time. Sink properties can be specified in a configuration file, or programmatically, inside of a 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 sink configuration properties that can be specified for the current sink provider.


Specifies whether the formatter will include versioning information. Values are true or false.


Using an instance of this object with untrusted data or across an unsecure channel is a security risk. Use this object only with trusted data and across a secure channel. For more information, see tp://


Namespace: System.Runtime.Remoting.Channels
Assembly: System.Runtime.Remoting (in System.Runtime.Remoting.dll)
Assembly Versions: 1.0.3300.0, 1.0.5000.0,