在.net中序列化读写xml方法的总结.docxVIP

  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方法的总结

XML是一种很常见的数据保存方式,我经常用它来保存一些数据,或者是一些配置参数。使用C#,我们可以借助.net framework提供的很多API来读取或者创建修改这些XML,然而,不同人使用XML的方法很有可能并不相同。今天我打算谈谈我使用XML的一些方法,供大家参考。最简单的使用XML的方法由于.net framework针对XML提供了很多API,这些API根据不同的使用场景实现了不同层次的封装,比如,我们可以直接使用XmlTextReader、XmlDocument、XPath来取数XML中的数据,也可以使用LINQ TO XML或者反序列化的方法从XML中读取数据。那么,使用哪种方法最简单呢?我个人倾向于使用序列化,反序列化的方法来使用XML。?采用这种方法,我只要考虑如何定义数据类型就可以了,读写XML各只需要一行调用即可完成。例如:// 1. 首先要创建或者得到一个数据对象Order order= GetOrderById(123);// 2. 用序列化的方法生成XMLstringxml = XmlHelper.XmlSerialize(order, Encoding.UTF8);// 3. 从XML读取数据并生成对象Order order2 = XmlHelper.XmlDeserializeOrder(xml, Encoding.UTF8);就是这么简单的事情,XML结构是什么样的,我根本不用关心,我只关心数据是否能保存以及下次是否能将它们读取出来。说明:XmlHelper是一个工具类,全部源代码如下:?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Xml.Serialization;usingSystem.IO;usingSystem.Xml;// 此处代码来源于博客【在.net中读写config文件的各种方法】的示例代码// /fish-li/archive/2011/12/18/2292037.htmlnamespaceMyMVC{public static class XmlHelper{private static void XmlSerializeInternal(Stream stream, object o, Encoding encoding) {if( o == null )throw new ArgumentNullException(o);if( encoding == null )throw new ArgumentNullException(encoding);XmlSerializerserializer= new XmlSerializer(o.GetType());XmlWriterSettingssettings = new XmlWriterSettings();settings.Indent= true;settings.NewLineChars= \r\n;settings.Encoding= encoding;settings.IndentChars= ;using(XmlWriterwriter = XmlWriter.Create(stream, settings) ) {serializer.Serialize(writer, o);writer.Close(); } }/// summary /// 将一个对象序列化为XML字符串/// /summary /// param name=o要序列化的对象/param /// param name=encoding编码方式/param /// returns序列化产生的XML字符串/returnspublic static string XmlSerialize(object o, Encoding encoding) {using(MemoryStreamstream = new MemoryStream() ) {XmlSerializeInternal(stream, o, encoding);stream.Position= 0;using(StreamReaderreader = new StreamReader(stream, encoding) ) {returnreader.ReadToEnd(); } } }/// summary /// 将一个对象按XML序

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档