欢迎来到天天文库
浏览记录
ID:14468543
大小:46.00 KB
页数:16页
时间:2018-07-28
《解析.net框架下的序列化机制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、解析.Net框架下的序列化机制解析.Net框架下的序列化机制2003-02-19··王凯明··yesky123下一页 程序员在编写应用程序的时候往往要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的过程被称为"序列化"(Serialization),而它的逆过程则可被称为"反序列化"(Deserialization)。 .Net框架对序列化机制具有非常好的支持,它提供了两个名字空间(namespace):System.Runtime.Serialization和S
2、ystem.Runtime.Serialization.Formatters以完成序列化机制的大部分功能。系列化这项技术可以应用在将程序产生的结果数据存储到文件系统中,但是它更主要的应用是在于.NetRemoting和Web服务的实现上。 序列化机制的实现是依靠格式器(Formatter)而完成的,它是一个从System.Runtime.Serialization.IFormatter继承下来的类的对象。格式器完成了将程序数据转化到能被存储并传输的格式的工作,同时也完成了将数据转化回来的工作。.Net框架为程序员提供了两种类型的格式器,一种通常是应用于桌面
3、类型的应用程序的,它一个是System.Runtime.Serialization.Formatters.Binary.BinaryFormatter类的对象,而另一种则更主要的应用于.NetRemoting和XMLWeb服务等领域的,它一个是System.Runtime.Serialization.Formatters.Soap.SoapFormatter类的对象。从它们的名称来看,我们不妨将它们分别称为二进制格式器和XML格式器。 本文将从这两个格式器入手,先向大家介绍分别用它们如何实现序列化和反序列化,然后比较两种格式器的不同点。接着我会向大家介绍实
4、现序列化对对象类型的一些要求,同时还要向大家介绍两种不同的序列化方式:基本序列化(BasicSerialization)和自定义序列化(CustomSerialization)。最后,我还会给大家介绍一个实例程序以加深大家对序列化机制的理解程度。 一.二进制格式器(BinaryFormatter)vsXML格式器(XMLFormatter): 下面我先向大家介绍两种不同的格式器,分别用它们如何实现序列化机制和反序列化机制,请看下面的代码:#regionBinarySerializerspublicstaticSystem.IO.MemoryStreamS
5、erializeBinary(objectrequest){ System.Runtime.Serialization.Formatters.Binary.BinaryFormatterserializer= newSystem.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); System.IO.MemoryStreammemStream=newSystem.IO.MemoryStream(); serializer.Serialize(memStream,request); retur
6、nmemStream;}publicstaticobjectDeSerializeBinary(System.IO.MemoryStreammemStream){ memStream.Position=0; System.Runtime.Serialization.Formatters.Binary.BinaryFormatterdeserializer= newSystem.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); objectnewobj=deserializer.Deseri
7、alize(memStream); memStream.Close(); returnnewobj;}#endregion#regionXMLSerializerspublicstaticSystem.IO.MemoryStreamSerializeSOAP(objectrequest){ System.Runtime.Serialization.Formatters.Soap.SoapFormatterserializer= newSystem.Runtime.Serialization.Formatters.Soap.SoapFormatter();
8、System.IO.MemoryStreammemS
此文档下载收益归作者所有