NET使XML串行化易如反掌.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NET使XML串行化易如反掌.doc

NET使XML串行化易如反掌人们一直高喊XML是解决系统互联问题的关键, 而.NET framework 也为处理XML数据提供了许多不同的类库. XmlDocument 类能让你像处理文件一样处理XML 数据, 而XmlReader, XmlWriter, 和它们的派生类使你能够将XML 数据做为数据流处理. XmlSerializer 则提供了另外的方法, 它使你能够将自己的对象串行和反串行化为XML. 串行化数据既能够让你像处理文件一样对数据进行随机存取, 同时又能够跳过你不感兴趣的元素. 在本文中, 我将向你展示如何使用XmlSerializer类以及如何在你的类中添加属性来控制串行化过程.XmlSerializer XmlSerializer类存在于System.Xml.Serialization命名空间的System.Xml.dll中, 它用一种高度松散耦合的方式提供串行化服务. 你的类不需要继承特别的基类, 而且它们也不需要实现任何特别的接口. 相反的, 你只需要在你的类或者这些类的公共域以及读/写属性里加上自定义的属性. XmlSerializer 通过相反映射读取这些属性并用它们将你的类和类成员映射到XML元素和属性. 将XML 映射到对象考虑表A中的XML语句, 哪一个正确的描述了一家电影院中上映的电影呢?表A ?xml version=1.0 encoding=utf-8 ? theater nameThe Camelot/name phone(888)665-2222/phone movie minutes=120 stars=2 ??titleThe Score/title ??ratingR/rating ??showing16:15:00/showing ??showing19:05:00/showing ??showing21:40:00/showing /movie movie minutes=100 ??titleShrek/title ??ratingPG-13/rating ??showing16:00:00/showing ??showing19:00:00/showing ??showing21:40:00/showing /movie /theater 表B中定义了一个Theater(电影院)类, 它包含了XmlSerializer使用的属性映射.表Busing System; using System.Xml.Serialization; namespace Articles.TechRepublic.XmlSerialization { ????[XmlRoot( theater )] ????public class Theater ????{ ????????[XmlElement( name )] ????????public string Name = ; ????????[XmlElement( phone )] ????????public string Phone = ; ????????[XmlElement( movie )] ????????public Movie[] Movies; ????????public override string ToString() ????????{ ????????????string movies = ; ????????????if ( Movies != null ) ????????????????foreach ( Movie movie in Movies ) ????????????????????movies += \n + movie.ToString(); ????????????????????return String.Format( {0}\n {1}\n{2}, ????????????????????Name, Phone, movies ); ????????} } XmlRoot 属性将类Theater映射到XML的根元素theater. XmlElement 属性将Name, Phone, 和 Movies数据域映射到嵌套在theater元素中的name, phone, 和 movie XML元素上去. 因为Movies是Movie数组, 所以XmlSerializer将它映射到多个XML movie元素.表C展示了一个带有属性映射的Movie类表Cpublic class Movie { ????[XmlElement( title )] ????public string Title = ; ????[XmlAttribute( minutes )] ????public u

您可能关注的文档

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档