C# 什么';在XmlReader类中,`ReadString`和`ReadContentAsString`之间的区别是什么?
我注意到在一些开源代码中,使用C# 什么';在XmlReader类中,`ReadString`和`ReadContentAsString`之间的区别是什么?,c#,.net,xmlreader,C#,.net,Xmlreader,我注意到在一些开源代码中,使用System.Xml.XmlReader.ReadString()解析Xml。但是,当我试图在控制台应用程序中使用它来检查它时(我天生就是个好奇的女孩),当我对XmlReader类实例变量按下时,我没有得到任何智能感知 我非常感兴趣,并使用ILDASM检查了MSIL。这时我注意到这个类方法用 [EditorBrowsable(EditorBrowsableState.Never)] 还注意到我对ReadString()的调用已转换为另一个名为ReadContentA
System.Xml.XmlReader.ReadString()
解析Xml。但是,当我试图在控制台应用程序中使用它来检查它时(我天生就是个好奇的女孩),当我对XmlReader
类实例变量按下
时,我没有得到任何智能感知
我非常感兴趣,并使用ILDASM检查了MSIL
。这时我注意到这个类方法用
[EditorBrowsable(EditorBrowsableState.Never)]
还注意到我对ReadString()
的调用已转换为另一个名为ReadContentAsString
的方法。我在MSDN上找不到关于微软程序员为什么做出这个决定的文档
有人吗?我真的很想知道,以便在我的生产代码中调用正确的方法
另外,我也不希望任何未来的开发人员看到我的代码时把我当成傻瓜,因为我是一个女孩和一个开发人员(我在一个高度男性主导的职业中看到的罕见组合;)你应该先阅读两个函数的官方文档: : 以字符串形式读取元素或文本节点的内容。但是,我们建议您改用该方法,因为它提供了一种更直接的方法来处理此操作 : 将当前位置的文本内容作为
字符串
对象读取
而ReadString()
仅适用于两种类型的节点文本和元素-ReadContentAsString()
处理大量的节点文本和元素,包括CDATA、空格和注释,但不处理元素!我认为后一种方法会使泛型化变得混乱,它处理不同节点类型的规则和读取需要在元素内部而不是在开始时。
我认为
string attrib;
string content;
while( NextCell( reader, out attrib ) )
{ if( attrib != "ReadMe!" ) continue;
ReadCell( reader, out content );
}
在我的例子中,
NextCell()
在单元格元素的开头离开读卡器,或者返回falseReadCell()
始终将读卡器保留在上次读取的单元格元素的结束标记处。它使用ReadString()。如果它使用了ReadElementContentAsString()
读卡器将留在下一个单元格的开头,而NextCell()
将跳过它跳转到它后面的单元格。似乎会问同样的问题,但包括原因的推理。您能否解释一下您正在尝试做什么(即,是什么提示了这个问题)?