基本序列化技术示例
更新:2007 年 11 月
本示例说明公共语言运行库将内存中的对象图序列化成流的能力。此示例可以使用 SoapFormatter 或 BinaryFormatter 来进行序列化。用数据填充的链接列表可以被序列化成文件流,也可以从文件流反序列化该链接列表。上述任何一种情况都会显示该列表,这样,您就可以看到相应的结果。链接列表的类型为 LinkedList,该类型由此示例定义。
有关序列化的更多信息,请查看源代码中的注释以及 build.proj 文件。
有关使用这些示例的信息,请参见下面的主题:
使用命令提示生成示例
使用命令提示定位到 Technologies\Serialization\Runtime Serialization\Basic 目录下语言特定的子目录之一。
根据所选的编程语言,在命令行中键入 msbuild SerializationCS.sln、msbuild SerializationJSL.sln 或 msbuild SerializationVB.sln。
使用 Visual Studio 生成示例
打开 Windows 资源管理器,定位到该示例的语言特定的子目录之一。
根据所选的编程语言,双击 SerializationCS.sln、SerializationJSL.sln 或 SerializationVB.sln 文件的图标,在 Visual Studio 中打开该文件。
在“生成”菜单中选择“生成解决方案”。
示例应用程序将在默认的 \bin 或 \bin\Debug 子目录中生成。
运行示例
定位到包含生成的可执行文件的目录。
在命令行中键入 Serialization.exe 以及所需的参数值。
说明: 此示例生成控制台应用程序。必须使用命令提示来启动该程序,才能查看相应的输出。
备注
示例应用程序接受指示您要执行何种测试的命令行参数。要使用 SOAP 格式化程序将 10 节点列表序列化成名为 Test.xml 的文件,请使用参数 sx Test.xml 10。
例如:
Serialize.exe -sx Test.xml 10
要从上一个示例反序列化 Test.xml 文件,请使用参数 dx Test.xml。
例如:
Serialize.exe -dx Test.xml
在上面的两个示例中,命令行开关中的“x”指示您需要 XML SOAP 序列化。您可以用“b”来代替它,以使用二进制序列化。如果您想尝试对非常多的节点进行序列化,则可能需要将控制台输出重定向到某个文件。
例如:
Serialize.exe -sb Test.bin 10000 >somefile.txt
下面的项目符号简要说明了此示例所使用的类和技术。
运行时序列化
IFormatter 可用于引用 BinaryFormatter 或 SoapFormatter 对象。
BinaryFormatter 可用于将链接列表序列化成二进制格式的流。二进制格式化程序使用了只有 BinaryFormatter 类型才理解的格式。然而,该数据非常简明。
SoapFormatter 可用于将链接列表序列化成 SOAP 格式的流。SOAP 是一种标准格式。
流 I/O
Stream 可用于序列化和反序列化。此示例中使用的特定流类型是 FileStream 类型。然而,序列化可以用于从 Stream 派生的任何类型。
File 可用于创建 FileStream 对象,以便在磁盘上读取和创建文件。
FileStream 可用于对链接列表进行序列化和反序列化。
请参见
概念
参考
System.Runtime.Serialization 命名空间