- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Mcad学习笔记之序列化(2进制和Soap序列化)
我最近学习remoting和web服务时,总是看到一个重要的字眼序列化.
那什么是序列化呢?以前我也模模糊糊.
?
为了搞清楚,请和我一起来序列化学习之旅吧.
?
让我们先看看序列化的定义,以下是微软的说明:
序列化可被定义为将对象的状态存储到存储媒介中的过程。在此过程中,对象的公共字段和私有字段以及类的名称(包括包含该类的程序集)都被转换为字节流,然后写入数据流。在以后反序列化该对象时,创建原始对象的精确复本
?
序列化一般用在2种地方:
1.将数据保持到存储中
例如:我知道在Asp.Net Forums中有.Net中序列化和反序列化的应用
在Forums中,有些内容是不固定的,如用户资料,除了一些基本资料,可能还要MSN、个人主页、签名等.我们一般是一个属性对应于表中的一个字段,要是以后我们增加一些新属性,就得增加表字段, 还要修改存储过程,这样其不麻烦?
在Asp.Net Forums中把用户资料序列化为2进制,这样用一个表字段就可以解决问题,并且扩展性好。
?
2.通过值将对象从一个应用程序域发送到另一个应用程序域中
remoting和web服务就是典型的应用
?
说多了没用,让我们来一段代码吧
先定义一个类
?1using?System;?2?3namespace?SerializTest?4{?5????[Serializable]?6????public?class?Class2?7????{?8????????private?string?name;?9????????[NonSerialized]10????????private?int?account;11????????12????????public?Class2(string?name,int?account)13????????{14????????????this.account=account;15????????????=name;16????????}1718????????public?int?Account19????????{20????????????get21????????????{22????????????????return?account;23????????????}24????????}25 26????????public?string?Name27????????{28????????????get29????????????{30????????????????return?name;31????????????}32????????}33????}34}35
说明:序列化一个类的最简单的方式是使用Serializable属性当然还可以通过在对象上实现ISerializable接口,自定义序列化标记了Serializable属性的类,类里面的所有成员都将被序列化,私有的变量也在内当然我们也可以有选择的序列化类里面的字段例如类里面的一些敏感数据,我们可以不对其进行序列化通过用NonSerialized属性标记成员变量,可以防止它们被序列化NonSerialized属性只可以用在类的某个字段上好了,再来一段俺喜欢的控制台来看看到底是怎么回事
?1using?System;?2using?System.IO;?3using?System.Runtime.Serialization;?4using?System.Runtime.Serialization.Formatters.Binary;?5using?System.Runtime.Serialization.Formatters.Soap;?6?7namespace?SerializTest?8{?9????class?Class110????{11????????[STAThread]12????????static?void?Main(string[]?args)13????????{14????????????string?fileName=MyFile.dat;15????????????Class2?my=new?Class2(Serializ?TestSerializ,987);?16????????????Console.WriteLine(初始化Class2类的一个实例my,my的账号=987,my的名字=Serializ?TestSerializ);1718????????????//序列化过程开始,我们把Class2的实例二进制序列化到文件MyFile.dat中19????????????IFormatter?fo
您可能关注的文档
最近下载
- 中医院药剂招聘笔试题和部分参考答案5套 .pdf VIP
- 第17课 辛亥革命与中华民国的建立 教案-2023-2024学年中职高一上学期高教版(2023)中国历史全一册.docx VIP
- 院感防控与手卫生管理规范.pptx VIP
- 《DB44T 2583-2024无人水面艇和小型智能船舶海上测试管理规范》.docx VIP
- JGJ162-2008建筑施工模板安全技术规程.docx VIP
- 富士达各功能电梯地址码(1)(1).pdf VIP
- 07K102 风阀选用与安装.pdf
- 海藻学-第四章-红藻门.ppt VIP
- 2025年人教版高中物理书目录(全).pdf VIP
- 合肥市庐江县选调县外教师考试真题2024 .pdf
文档评论(0)