The 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 namespace are the class, the class, and the class. The class stores and returns the results of an asynchronous method call. instances contain the return value, call status, the delegate used for the call, and the other information about the asynchronous method call. The class can be used to control serialization of objects that extend . A 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 class holds information returned after a remote method call. A holds the return value and any out or ref parameters that resulted from the remote method call.