技术成就梦想 知识改变生活

C#序列化和反序列化代码

我们在日常开发中会经常用到序列化和反序列化,他们到底是什么意思呢?通俗的讲序列化就是把对象转化成数据文件或者字段(二进制或者XML),反序列化就是数据文件或者字段转化为数据对象。 下面我以提问题的方式,帮大家解释一下序列化和反序列化。(C#代码为例)

一 、为什么使用序列化和反序列化?

  1.保存对象。通常我们在C#代码中构建了一个对象需要把该对象保存到数据库、文件、Application、Session、Coockie、ViewState等其他存储环境中,以备下次直接使用。

  2.共享数据. 对象仅在创建对象的应用程序域中有效,其他应用程序域想调用该对象数据就会使用该技术。

  3.在网络上传送对象的字节序列。其中Web Service就是一个典型的例证。

  4.在一些分布式系统中也经常会用到该技术。

  5.还有其他一些好处,朋友们可以给我继续补充。不胜感激。

二、序列化和反序列化有哪些类型?

  在C#中序列化反序列化类型大致有如下三种:

    第一、二进制数据(BinaryFormatter->IFormatter)

    第二、XML数据(XmlSerializer)

    第三、Soap数据(SoapFormatter->IFormatter

三、序列化和反序列化分别如何实现?   

共用类(UserInFo)

第一、二进制数据        

序列化二进制代码

反序列化二进制代码

第二、Xml数据

序列化XML代码
反序列化XML代码       

第三、Soap数据

序列化代码
反序列化代码

 

 

 

posted @ 2009-10-20 14:31  常鑫  阅读(728)  评论(1编辑  收藏  举报