分享
 
 
 

浅谈对象的序列化(Serialize)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

由CSDN论坛中整理

序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,就使得数据能够被轻松地存储和传输。

.NET Framework 提供两种序列化技术:

二进制序列化保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用。例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象。您可以将对象序列化到流、磁盘、内存和网络等等。远程处理使用序列化“通过值”在计算机或应用程序域之间传递对象。

XML 序列化仅序列化公共属性和字段,且不保留类型保真度。当您希望提供或使用数据而不限制使用该数据的应用程序时,这很有用。由于 XML 是一个开放式标准,因此,对于通过 Web 共享数据,它是一个有吸引力的选择。SOAP 同样是一个开放式标准,这使它也成为一个颇具吸引力的选择。

例如:

XML 序列化可具有多种形式,从简单的到复杂的都有。例如,可以序列化仅包含公共字段和属性的类,如介绍 XML 序列化中所示。下面的示例用于处理各种高级方案,包括如何使用 XML 序列化来生成符合特定 XML 架构 (XSD) 文档要求的 XML 流。

除了对公共类的实例进行序列化之外,DataSet 的实例也可以被序列化,如下面的示例所示:

private void SerializeDataSet(string filename){

XmlSerializer ser = new XmlSerializer(typeof(DataSet));

// Creates a DataSet; adds a table, column, and ten rows.

DataSet ds = new DataSet("myDataSet");

DataTable t = new DataTable("table1");

DataColumn c = new DataColumn("thing");

t.Columns.Add(c);

ds.Tables.Add(t);

DataRow r;

for(int i = 0; i<10;i++){

r = t.NewRow();

r[0] = "Thing " + i;

t.Rows.Add(r);

}

TextWriter writer = new StreamWriter(filename);

ser.Serialize(writer, ds);

writer.Close();

}

一般是把一个对象序列化是用来作传输用,用在分布式处理.

其他地也有应用.就说 dottext 这个程序吧,里面有几个象就使用了XML序列化,这样可以使用XML文件来配制对象.

XML 序列化将对象的公共字段和属性或者方法的参数和返回值转换(序列化)为符合特定 XML 架构定义语言 (XSD) 文档的 XML 流。XML 序列化产生强类型类,并为存储或传输目的将其公共属性和字段转换为序列格式(在此情况下,为 XML)。

由于 XML 是一种开放式标准,因此无论使用什么平台,任何应用程序都可根据需要处理 XML 流。例如,用 ASP.NET 创建的 XML Web services 使用 XmlSerializer 类创建 XML 流,用来在整个 Internet 中或 Intranet 上的 XML Web services 应用程序之间传递数据。相反地,反序列化获取这样的 XML 流并重新构造对象。

XML 序列化还可用于将对象序列化为符合 SOAP 规范的 XML 流。SOAP 是一种基于 XML 的协议,它是专门为使用 XML 来传输过程调用而设计的。

若要序列化或反序列化对象,请使用 XmlSerializer 类。若要创建要序列化的类,请使用 XML 架构定义工具。

说白了就是为了数据通用,xml数据还能跨越防火墙

主要是对象与流的相互转化。

比如客户端修改数据之后,希望进行判断再修改数据库;这就需要把数据库里的数据先取到DataSet;这个DataSet可以以session变量形式保存在Server端,也可以用ViewState形式发到页面里用带宽换Server的处理能力;如果是后者,就需要在DataSet和http流中转化,就需要序列化/反序列化。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有