System.Runtime.Remoting.Messaging.RemotingSurrogateSelector Class

Selects the remoting surrogate that can be used to serialize an object that derives from a MarshalByRefObject.

See Also: RemotingSurrogateSelector Members


public class RemotingSurrogateSelector : System.Runtime.Serialization.ISurrogateSelector


A surrogate is an object that can handle the serialization requirements of an object. Remoting surrogates handle remoting serialization requirements of objects that derive from MarshalByRefObject. The System.Runtime.Remoting.Messaging.RemotingSurrogateSelector manages registered surrogates for use by the System.Runtime.Serialization.Formatters.Binary.BinaryFormatter and System.Runtime.Serialization.Formatters.Soap.SoapFormatter.

During serialization for remoting purposes of a MarshalByRefObject, the remoting surrogate creates an System.Runtime.Remoting.ObjRef that contains all the relevant information required to activate and communicate with the remote object. The newly created System.Runtime.Remoting.ObjRef can then be sent to a remote location and used to create a proxy.


This class makes a link demand and an inheritance demand at the class level. A System.Security.SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. For details about security demands, see [<topic://cpconLinkDemands>] and [<topic://cpconInheritanceDemands>].


Namespace: System.Runtime.Remoting.Messaging
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0,,