The System.Runtime.Remoting.Messaging namespace contains classes used to create and transmit messages. The remoting infrastructure uses messages to communicate with remote objects. Messages are used to transmit remote method calls, to activate remote objects, and to communicate information. A message object carries a set of named properties, including action identifiers, envoy information, and parameters. Some of the most important classes of the System.Runtime.Remoting.Messaging namespace are the AsyncResult class, the RemotingSurrogateSelector class, and the ReturnMessage class.
The AsyncResult class stores and returns the results of an asynchronous method call. AsyncResult instances contain the return value, call status, the delegate used for the call, and the other information about the asynchronous method call.
The RemotingSurrogateSelector class can be used to control serialization of objects that extend MarshalByRefObject. A RemotingSurrogateSelector selects the surrogate used in serialization and deserialization of such objects. A surrogate is an object that can control serialization or deserialization of an object.
The ReturnMessage class holds information returned after a remote method call. A ReturnMessage holds the return value and any out or ref parameters that resulted from the remote method call.
|AsyncResult||Encapsulates the results of an asynchronous operation on an asynchronous delegate.|
|CallContext||Provides a set of properties that are carried with the execution code path. This class cannot be inherited.|
|Header||Defines the out-of-band data for a call.|
|LogicalCallContext||Provides a set of properties that are carried with the execution code path during remote method calls.|
|OneWayAttribute||Marks a method as one way, without a return value and out or ref parameters.|
|RemotingSurrogateSelector||Selects the remoting surrogate that can be used to serialize an object that derives from a MarshalByRefObject.|
|ReturnMessage||Holds a message returned in response to a method call on a remote object.|
|ILogicalThreadAffinative||Marks an object that can propagate outside of an AppDomain in a LogicalCallContext.|
|IMessage||Contains communication data sent between cooperating message sinks.|
|IMessageCtrl||Provides a way to control asynchronous messages after they have dispatched using the IMessageSink.AsyncProcessMessage.|
|IMessageSink||Defines the interface for a message sink.|
|IMethodCallMessage||Defines the method call message interface.|
|IMethodMessage||Defines the method message interface.|
|IMethodReturnMessage||Defines the method call return message interface.|
|IRemotingFormatter||Provides the remote procedure call (RPC) interface for all formatters.|
|HeaderHandler||Represents the method that will handle processing of headers on the stream during deserialization.|