c#开发园地

c#开发园地

管理

序列化对象
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,就使得数据能够被轻松地存储和传输。
.NET Framework 提供两种序列化技术:
二进制序列化保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用。例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象。您可以将对象序列化到流、磁盘、内存和网络等等。远程处理使用序列化“通过值”在计算机或应用程序域之间传递对象。
XML 序列化仅序列化公共属性和字段,且不保留类型保真度。当您希望提供或使用数据而不限制使用该数据的应用程序时,这很有用。由于 XML 是一个开放式标准,因此,对于通过 Web 共享数据,它是一个有吸引力的选择。SOAP 同样是一个开放式标准,这使它也成为一个颇具吸引力的选择。

持久存储
公共语言运行库管理对象在内存中的布局方式并通过使用反射提供自动的序列化机制。当序列化一个对象时,类的名称、程序集和类实例的所有数据成员都被写入存储中。对象通常在成员变量中存储对其他实例的引用。在序列化类时,序列化引擎跟踪所有已被序列化的引用的对象,以确保同一对象不会被多次序列化。随 .NET Framework 一起提供的序列化结构自动正确处理对象图和循环引用。对于对象图的唯一要求就是,由正被序列化的对象引用的所有对象还必须被标记为 Serializable(基本序列化)。如果没有进行此标记,当序列化程序尝试序列化未标记的对象时,将引发一个异常。
当反序列化已序列化的类时,重新创建该类并且自动还原所有数据成员的值。

posted on 2008-05-17 16:13  chl  阅读(1063)  评论(0编辑  收藏  举报