序列化示例

更新:2007 年 11 月

此解决方案演示如何序列化和反序列化一个对象。

获取示例及其安装说明

  • 执行下列一项或多项操作:

    • 在“帮助”菜单上,单击“示例”。

      自述文件将显示有关示例的信息。

    • 访问 Visual Studio 2008 示例网站。该网站提供了最新版本的示例。

    • 在安装了 Visual Studio 的计算机上查找示例。默认情况下,示例和自述文件安装在驱动器号:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。对于 Visual Studio 的速成版,所有示例都可联机找到。

有关更多信息,请参见定位示例文件

安全说明:

此示例代码用于阐释概念,因此仅显示与此概念相关的代码。该代码可能不符合特定环境的安全要求,因此不应原样搬用所显示的代码。我们建议您添加安全性代码和错误处理代码,以使项目更加安全可靠。Microsoft“按原样”提供此示例代码,不提供任何保证。

运行此示例

  • 按 F5。

演示

此应用程序包含两个类,一个使用标准序列化,一个使用自定义序列化。用户界面包括序列化和反序列化这两个类的按钮。使用标准序列化的类可以序列化为 SOAP 文件或二进制文件。使用自定义序列化的类被序列化为 SOAP 文件。TextBox 控件用于显示 SOAP 文件。这两个类都有 SerializableAttribute 属性。下表将对这些类进行描述。

类成员

SerializationClass

CustomSerializationClass

PublicVariable

公共变量在不做更改的情况下进行序列化和反序列化。

公共变量在不做更改的情况下进行序列化和反序列化。

PublicProperty

支持该属性的私有变量在不做更改的情况下进行序列化和反序列化。

支持该属性的私有变量被序列化为 -1,而不管在用户界面中设置为何值。所以它被反序列化为 -1。

NonSerializedVariable

此变量没有序列化,因为它被标记为 NonSerializedAttribute。公共变量没有序列化,所以反序列化的值为 0。

尽管该变量标记为 NonSerializedAttribute,但它被序列化,因为自定义序列化重写了该设置。公共变量在不做更改的情况下进行序列化和反序列化。

下面演示了三种类型的序列化:

请参见

参考

System.Runtime.Serialization.Formatters.Soap

Serialize

Deserialize

ISerializable

GetObjectData

SerializableAttribute