System.Runtime.Remoting Namespace

The System.Runtime.Remoting namespace provides classes and interfaces that allow developers to create and configure distributed applications. Some of the more important classes of the System.Runtime.Remoting namespace are the System.Runtime.Remoting.RemotingConfiguration class, the System.Runtime.Remoting.RemotingServices class, and the System.Runtime.Remoting.ObjRef class.

Remarks

The System.Runtime.Remoting.RemotingConfiguration class contains static methods for interfacing with configuration settings. The System.Runtime.Remoting.RemotingConfiguration.Configure(string) method allows developers to configure the remoting infrastructure through the use of XML formatted configuration files. The System.Runtime.Remoting.RemotingConfiguration class also contains several methods for client-end and server-end registration of client and server activated objects that reside on the server.

The System.Runtime.Remoting.RemotingServices class provides a number of methods to help in using and publishing remoted objects. The System.Runtime.Remoting.RemotingServices.Marshal method provides the functionality for storing all the relevant information required to activate and communicate with a remote object in an instance of the System.Runtime.Remoting.ObjRef class for later serialization and transmission to a remote location. The System.Runtime.Remoting.RemotingServices.Unmarshal method reverses this process, creating a proxy for a remote object that can be used by an application without regard for any remoting subdivisions.

The System.Runtime.Remoting.ObjRef class holds all the relevant information required to activate and communicate with a remote object. This class is a serializable representation of an object that is transmitted to a remote location using a channel, where it is unmarshaled (see System.Runtime.Remoting.RemotingServices.Unmarshal) and can be used to create a local proxy of the remoted object.

Note:

Marshal-by-reference objects (MBRs) do not reside in memory forever. Instead, unless the type overrides MarshalByRefObject.InitializeLifetimeService to control its own lifetime policies, each MBR has a finite lifetime before the .NET Framework remoting system begins the process of deleting it and reclaiming the memory. For more information, see Lifetime Leases.

Classes

TypeReason
ActivatedClientTypeEntry

Holds values for an object type registered on the client end as a type that can be activated on the server.

ActivatedServiceTypeEntry

Holds values for an object type registered on the service end as one that can be activated on request from a client.

CustomErrorsModes

Specifies how custom errors are handled.

IChannelInfo

Provides custom channel information that is carried along with the System.Runtime.Remoting.ObjRef.

IEnvoyInfo

Provides envoy information.

InternalRemotingServices

Defines utility methods for use by the .NET Framework remoting infrastructure.

IObjectHandle

Defines the interface for unwrapping marshal-by-value objects from indirection.

IRemotingTypeInfo

Provides type information for an object.

ObjectHandle

Wraps marshal-by-value object references, allowing them to be returned through an indirection.

ObjRef

Stores all relevant information required to generate a proxy in order to communicate with a remote object.

RemotingConfiguration

Provides various static methods for configuring the remoting infrastructure.

RemotingException

The exception that is thrown when something has gone wrong during remoting.

RemotingServices

Provides several methods for using and publishing remoted objects and proxies. This class cannot be inherited.

RemotingTimeoutException

The exception that is thrown when the server or the client cannot be reached for a previously specified period of time.

ServerException

The exception that is thrown to communicate errors to the client when the client connects to non-.NET Framework applications that cannot throw exceptions.

SoapServices

Provides several methods for using and publishing remoted objects in SOAP format.

TypeEntry

Implements a base class that holds the configuration information used to activate an instance of a remote type.

WellKnownClientTypeEntry

Holds values for an object type registered on the client as a server-activated type (single call or singleton).

WellKnownObjectMode

Defines how well-known objects are activated.

WellKnownServiceTypeEntry

Holds values for an object type registered on the service end as a server-activated type object (single call or singleton).