序列化 (C# and Visual Basic)

http://technet.microsoft.com/zh-cn/magazine/ms233843(en-us,VS.110).aspx

1.

序列化(serialization)是把对象(object)转换为字节流(a stream of bytes)以存储对象或者把对象传输到内存、数据库或文件的过程。

其主要目的是保存对象的状态,以便可以在需要时重新创建对象。 相反的过程称为反序列化。

2.

下图显示序列化的整个过程。


对象被序列化为流。流包含的不仅是数据,还包括有关对象类型的信息,如对象类型的版本、区域性和程序集名称。 根据该(字节)流,可以将对象存储在数据库、文件或内存中。

3.

序列化的用途

通过序列化,开发人员可以保存对象的状态,并在需要时重新创建该对象,从而提供对象的存储以及数据交换。 通过序列化,开发人员还可以执行类似如下的操作:通过 Web 服务将对象发送到远程应用程序、将对象从一个域传递到另一个域、以 XML 字符串的形式跨防火墙传递对象,或者跨应用程序维护安全信息或用户特定信息。

4.

使对象可序列化

若要序列化对象,您需要待序列化的对象、要包含序列化对象的流,以及一个 FormatterSystem.Runtime.Serialization包含序列化和反序列化对象所需的类。

将 SerializableAttribute 特性应用于一个类型可指示该类型的实例可以序列化。 尝试序列化时,如果类型没有 SerializableAttribute 特性,将引发 SerializationException 异常。

如果不希望类中的字段可序列化,请应用 NonSerializedAttribute 特性。 如果可序列化类型的字段包含指针、句柄或其他一些专用于特定环境的数据结构,并且不能在不同的环境中以有意义的方式重建,则可能需要使该字段不可序列化。

如果已序列化的类包含对标记为 SerializableAttribute 的其他类的对象的引用,则也将序列化这些对象。





你可能感兴趣的:(序列化 (C# and Visual Basic))