XmlDocument类的WriteContentTo和WriteTo方法

  今天在看《C#高级编程(第四版)》第21章 处理XML 之 使用XmlDocument对象

  书中有段原文,引起了我的注意: “在这个示例中,创建一个新XmlTextWriter,把它传送给WriteContentTo方法。WriteContentTo和WriteTo方法都带一个XmlTextWriter参数。WriteContentTo把当前节点 及其所有的子节点都保存到XmlTextWriter,而WriteTo只保存当前节点。”

  我很遗憾,我还是没搞懂两个方法之间到底有什么区别,于是决定写一个例子来帮助我理解:

将XmlDocument对象生成Xml文件

 

  运行成功,生成的Xml文件内容如下:

book.xml

 

  当我将代码中的doc.WriteContentTo(writer)换成doc.WriteTo(writer),F5运行生成的book.xml文件内容仍然一模一样,我还是没搞明白两个方法之间到底有什么区别。接着我又开始使劲的折腾我的代码,得到的结果是WriteContentTo和WriteTo方法最终生成的Xml文件还是一样的。

  难道他们的功能是一样的,为什么要弄两个名称呢?

  没辙,突然想到用Reflector反编译看看吧:

反编译后的WriteContentTo和WriteTo方法源码

 

  真相终于大白,XmlDocument类的WriteContentTo和WriteTo方法都是重载基类的(这点我一开始就知道),WriteTo方法直接调用WriteContentTo方法。它们的功能是一模一样的,那为什么不说明一下呢,唉...

  最后我们在VS里面F12追踪一下,看看他们的定义:

WriteContentTo和WriteTo方法的定义描述

 

  你是不是也很迷糊啊?

posted @   SamuelWoo  阅读(1305)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示