I am working with a large existing .Net Remoting service. This service needs to be modified in a way that all calls to the service need additional information to allow the service to process the calls correctly.
I would like to avoid adding a new parameter onto each of the existing functions, and would prefer to pass extended information from the client to the server in a way that leaves the interfaces unchanged and still allows the service to process the calls correctly.
This can be accomplished using the following interfaces: IClientChannelSink, IClientChannelSinkProvider, IServerChannelSink, and IServerChannelSinkProvider
Using these interfaces, a client sink can be created, which can add the new global information onto each call as a header value, and the server sink can pull this header value off, and store it for usage by the logic code.
You can find a high level overview of these at http://www.diranieh.com/NETRemoting/ExtendingNET.htm
The client config section to enable your client sink is:
The server config section to enable your server sink is: