【问题标题】:convert XmlReader to XmlTextReader将 XmlReader 转换为 XmlTextReader
【发布时间】:2009-10-08 08:42:31
【问题描述】:

如何将 XmlReader 转换为 XmlTextReader?

代码片段:

XmlTextReader reader = XmlTextReader.Create(pomfile.FullName);

这是我得到的构建错误:

Cannot implicitly convert type 'System.Xml.XmlReader' to 'System.Xml.XmlTextReader'. An

存在显式转换(您是否缺少演员表?)。

pomfile 是 FileInfo 类型

【问题讨论】:

  • 请格外小心,在调用 XmlTextReader.Create 时,您实际上是在调用基本静态方法 XmlReader.Create。调用静态方法时始终使用基类以避免混淆含义(这里,返回的 XmlReader 并不总是返回的 XmlTextReader 类型)。

标签: c# xmlreader xmltextreader


【解决方案1】:

XmlTextReader.Create() 函数会生成 XMLReader,您必须将其转换为 XmlTextReader,但如果无法进行转换,则会产生运行时异常:

XmlTextReader tr = (XmlTextReader)XmlTextReader.Create(pomfile.FullName));

或者你可以这样做:

XmlTextReader reader = new XmlTextReader(XmlTextReader.Create(pomfile.FullName));

但最好的办法是:

XmlTextReader reader = new XmlTextReader(pomfile.FullName);

【讨论】:

    【解决方案2】:

    XmlTextReader 在 .NET 2.0 中已过时。只需这样做:

    XmlReader reader = XmlReader.Create(pomfile.FullName);
    

    【讨论】:

    【解决方案3】:

    XmlReaderXmlTextReader 的抽象基类,因此您需要强制进行向下转换(我不建议这样做)。

    直接实例化您期望的类(如najmeddine's answer 中指出的那样)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 2010-09-07
      • 2011-11-17
      • 2012-09-01
      相关资源
      最近更新 更多