【问题标题】:Reset position of StringReader重置 StringReader 的位置
【发布时间】:2009-03-11 09:59:48
【问题描述】:
 StringReader rdr = new StringReader(finalXML);

 //Reader is a property which returns XmlTextReader
 Reader = new XmlTextReader(rdr); 
 XmlReader reader = XmlReader.Create(rdr, settings); 

最后一行抛出异常,因为根元素位于流的末尾。
_pos 值表明它已经读取了我之前将其分配给行中的属性时的所有字符2.
有谁知道如何重置 StringReader?

【问题讨论】:

  • 哇,这很难理解。你有问题吗?如果是这样,请不要将其隐藏为代码中的注释。
  • +1 表示 -1。此外,不要使用 XmlTextReader,除非有特殊用途。这不是其中之一。另外,不要将您的 Reader 暴露给调用者。注释掉“Reader =”行,我敢打赌代码有效。
  • 我需要使用 XmlTextReader 并且不想注释掉该行。我需要的是一种重置 StringReader 的方法
  • +1 表示 -3 似乎您的帖子没有得到很好的接收。对不起那个新手
  • 您不想“休息”它 - 您不想公开它,并且您不想让两个单独的 XmlReader 实例使用它。如果出于某种原因必须公开它,请创建第二个 StringReader。

标签: xml .net


【解决方案1】:

基本上,你不知道。只需创建一个新的...“阅读器”通常是单向的。在某些方面,拥有一个消耗阅读器的可设置“阅读器”属性是令人困惑的。也许有一个Read(...)Load(...) 方法来代替?很明显它有副作用......

【讨论】:

    【解决方案2】:

    作为最佳实践,您应该使用使用工厂模式而不是构造函数“new XmlTextReader(...)”的静态 XmlReader.Create() 方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多