流是字节序列的抽象,如文件,输入/输出设备,进程间通信管道或TCP/IP套接字。 Stream类及其派生类提供了这些不同类型的输入和输出的通用视图,将程序员与操作系统和底层设备的特定细节隔离开来。 [MSDN所述]
,所以我想你使用.NET不同的格式,通过使用流使用序列,进行序列化需要定义需求
序列化是在转换一个目的是字节的持久性存储装置的过程。反序列化过程将字节转换为对象,而不会丢失任何数据。序列化用于将值存储在文件或数据库中,通过网络发送对象并将其转换回原始对象格式。 .NET框架提供了一组用于简化序列化过程的框架类库(FCL)。在两个不同应用程序之间发送数据非常有用。
.NET Framework支持二进制序列化和XML序列化格式。 XML序列化仅序列化公共字段。但是,二进制序列化将序列化所有私人和公共领域。序列化可以按照基本或自定义进行。基本序列化发生在一个类应用了SerializableAttribute属性的时候。基本序列化不支持版本控制。自定义序列化类必须标记为SerializableAttribute并实现ISerializable接口。用户可以实现Binary和XML序列化格式的自定义序列化。 GetObjectData需要被自定义应用程序覆盖。示例应用程序针对二进制和XML序列化使用自定义序列化。 .NET Framework支持与开发工具关联的设计器序列化。 定制序列化
定制序列化是控制序列化和反序列化过程的过程。自定义序列化可以通过在序列化期间和之后运行自定义方法或通过实现ISerializable接口来实现。自定义序列化用于对序列化对象进行版本控制。如果序列化对象已更改对象状态(在更高版本中添加了新文件),则使用自定义序列化获取值而不丢失数据。由于缺少属性,序列化对象的版本可能会失败。
如果用户想要在序列化期间和之后使用自定义方法,用户应该使用OnDeserializedAttribute,OnDeserializingAttribute,OnSerializedAttribute和OnSerializingAttribute属性应用自定义序列化支持,以便在序列化和反序列化期间自定义数据。 OptionalFieldAttribute属性用于忽略用于反序列化的旧版本数据。格式化程序在反序列化过程中不会给出任何错误。它允许在序列化/反序列化之前和之后更新对象。
我想下面你
http://www.codeproject.com/Articles/422474/Serialization-using-different-formats-in-NET
来源
2013-03-07 19:45:01
Ali
你指的是什么魔法链接帮助? 'Stream GetAStream(){return new MemoryStream();}'工作。 – 2013-03-07 19:17:09