net中对象序列化技术浅谈

上传人:gg****m 文档编号:217176560 上传时间:2021-12-01 格式:DOCX 页数:15 大小:301.57KB
返回 下载 相关 举报
net中对象序列化技术浅谈_第1页
第1页 / 共15页
net中对象序列化技术浅谈_第2页
第2页 / 共15页
net中对象序列化技术浅谈_第3页
第3页 / 共15页
net中对象序列化技术浅谈_第4页
第4页 / 共15页
net中对象序列化技术浅谈_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《net中对象序列化技术浅谈》由会员分享,可在线阅读,更多相关《net中对象序列化技术浅谈(15页珍藏版)》请在金锄头文库上搜索。

1、yy序列化是将对象转换为容易传输的格式的过程。例如,对以序列化一个对象,然后 使用HTTP通过Internet在客户端和服务器之间传输该对象。反之,反序列化根据流重 新构造对象。中有提供了几种序列化的方式:二进制序列化XML序列化SOAP序列化二进制序列化所谓二进制序列化,指的是对彖序列化之后是二进制形式的。二进制序列化是通过Binary Formatter 类来实现的,这个类位于 System.Runtime.Serialization.Formatters.Bina ry命名空间下。XML序列化所谓XML序列化,是指对象序列化之后的结果是XML形式的。保存XML序列化是通过X mISeri

2、alizer类来实现的,这个类位于System.Xml.Serialization命名空间下。SOAP序列化所谓SOAP序列化是指对彖序列化之后的结果符合SOAP协议,也就是可以通过SOAP协 议传输(不知道SOAP协议?百度一下吧)。SOAP序列化是通过SoapFormatter类來 实现的,这个类位丁 System.Runtime.Serialization.Formatters.Soap 命名空间下, 并且需要注意需要手动添加对这个命名空间的引用,如下图所示:组件名称Systwm. Runtime Seri ali zati on版本3. 0.0.0Sy t mm Runli m q .

3、 $ er i al i 工 a t i on. Qt t ws.S o 翎2. 0.0.0System. SecuritySystem. Servi ceModelSystem. ServiceModel. WebSystem. Servi ceProcessSystem. SpeechSystmm. TransactionsSystem. WebSystem. Web. Extensi onsSystem. Web Extensions. Design System. Web. MobileSystem. Web. RegularExpress!ons System. Web. Servi

4、 ces r hi * iT?2.0.0.03. 0.0.03. 5. 0.02. 0.0.03. 0.0.02. 0.0.02. 0.0.03. 5. 0.03. 5. 0.02. 0.0.02. 0.0.02. 0.0.0c c c c尉V2.0V2oooooooooooo V2.V2.V2.V2.V2.V2.V2.V2.V2.V2.V2.V2.C取消确定下面编写一个类用于序列化和反序列化,这个类的代码如下:using System;using System.Collections.Generic;using System.Text;namespace MySerializeDemoSer

5、ializable/ /要序列化的对象/作者:周公/编写时间:2009-03-10/ public class My Object/NonSerializedprivate string name;private DateTime birthday;private string homePlace;/ /出生地/ public string HomePlaceget return homePlace; set homePlace = value; / /生 Fl/ public DateTime Birthdayget return birthday; set birthday = value

6、; / /姓名/ public string Nameget return name; set name = value; / /年龄/ public int Ageget return DateTime.Now.Year - birthday.Year; / / override 了 ToString()方法/ / public override string ToString()59.return string.Format(n姓名:0住日:1,出生地:2,年龄:3H,name,birthday,homePlace,Age);60. 61.62. 63. using System;usin

7、g System Col lections Generic;using System Text;namespace MySerializeDemo fSerializable/ /要序列化的对彖/作者:周公/ 编写时间:2009-03-10/ public class MyObject /NonSerializedprivate string name;private DateTime birthday;nri vat p ctr ihnmpP 1 acp d 1下面是分别用上面的三个类进行序列化和反序列化的代码:view plaincopy to clipboardprint?1. usin

8、g System;2. using System.Collections.Generic;3. using System.Text;4. using SystemO;5. using System.Runtime.Serialization.Formatters;6. using System.Runtime.Serialization.Formatters.Binary;7. using System.Runtime.Serialization.Formatters.Soap;8. using System.Xml.Serialization;9.9. namespace MySeriali

9、zeDemo10. 11. class Program12. 14.static void Main(string args)My Object obj = new MyObject();obj.Birthday = new DateTime(1979, 11, 7);obj.HomePlace =湖北”;obj.Name = ”周公”;Console.WriteLine(H=使用 BinaryFormatter 类进行序列化和反序列 化。=);BinarySerialize(obj);BinaryDeserialize(nC:MyObject.dat);Console.WriteLine(*

10、=使用 SoapFormatter 类进行序列化和反序列化。SOAPSerialize(obj);SOAPDeserialize(MC: MyObject.soapH);Console.WriteLine(,=使用 XmlSerializer 类进行序列化和反序列化。XMLSerialize(obj);XMLDeserialize(,C:MyObject.xmr,);/ /二进制序列化对象/ / param name=obj”Av/paramApublic static void BinarySerialize(MyObject obj)using (FileStream stream = n

11、ew FileStream(C:MyObject.datn, FileMode.Create, FileAccess.Write)BinaryFormatter formater = new BinaryFormatter();formater.Serialize(stream, obj);Console. WriteLine(,f 对象已经被序列化+ obj.ToString();/ /二进制反序列化/ / public static void BinaryDeserialize(string fileName)using (FileStream stream = new FileStrea

12、m(fileName, FileMode.Open, FileAccess. Read)BinaryFormatter formater = new BinaryFormatter();My Object obj=(MyObject)formater.Deserialize(stream);Console.WriteLine(对象己经被反序列化。” + obj.ToString();/ /二进制序列化对象/ / public static void SOAPSerialize(MyObject obj)using (FileStream stream = new FileStream(,C:M

13、yObject.soapM, FileMode.Create, FileAccess.Write)SoapFormatter formater = new SoapFormatter();formater.Serialize(stream, obj);Console.WriteLineC* 对象己经被序列化。” + obj.ToString();/ /二进制反序列化/ / public static void SOAPDeserialize(string fileName)using (FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess .Read)SoapFormatter formater =

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号