按值封送

对象仅在创建它们的应用程序域中有效。除非对象从 MarshalByRefObject 派生或者标记为 Serializable,否则尝试将对象作为参数传递或者作为结果返回时都将失败。如果将对象标记为 Serializable,则会自动序列化该对象,将该对象从一个应用程序域传输至另一个应用程序域,然后反序列化,以便在第二个应用程序域中生成该对象的一个精确副本。此过程通常称为按值封送。

如果对象从 MarshalByRefObject 派生,则会将对象引用(而不是对象本身)从一个应用程序域传递至另一个应用程序域。您还可以将从 MarshalByRefObject 派生的对象标记为 Serializable。此对象用于远程处理时,已使用代理项选择器 (SurrogateSelector) 预配置负责序列化的格式化程序,该格式化程序控制序列化过程,并用代理替换从 MarshalByRefObject 派生的所有对象。如果本地没有 SurrogateSelector,则序列化体系结构遵循序列化过程中的步骤中所述的标准序列化规则。

另请参见

其他资源

序列化概念
Remote Objects
XML 和 SOAP 序列化