C# 将XmlReader转换为XmlTextReader
如何将XmlReader转换为XmlTextReader 代码段:C# 将XmlReader转换为XmlTextReader,c#,xmlreader,xmltextreader,C#,Xmlreader,Xmltextreader,如何将XmlReader转换为XmlTextReader 代码段: XmlTextReader reader = XmlTextReader.Create(pomfile.FullName); 以下是我得到的生成错误: Cannot implicitly convert type 'System.Xml.XmlReader' to 'System.Xml.XmlTextReader'. An 存在显式转换(是否缺少强制转换?) pomfile的类型为FileInfoXmlTextReader
XmlTextReader reader = XmlTextReader.Create(pomfile.FullName);
以下是我得到的生成错误:
Cannot implicitly convert type 'System.Xml.XmlReader' to 'System.Xml.XmlTextReader'. An
存在显式转换(是否缺少强制转换?)
pomfile的类型为FileInfoXmlTextReader。Create()
函数生成必须强制转换为XmlTextReader
的XMLReader,但如果无法强制转换,则会生成运行时异常:
XmlTextReader tr = (XmlTextReader)XmlTextReader.Create(pomfile.FullName));
或者您可以这样做:
XmlTextReader reader = new XmlTextReader(XmlTextReader.Create(pomfile.FullName));
但最好的办法是:
XmlTextReader reader = new XmlTextReader(pomfile.FullName);
XmlReader
是XmlTextReader
的抽象基类,因此您需要强制进行向下转换(我不建议这样做)
直接实例化所需的类(如中所指出)
XmlTextReader
在.NET2.0中已过时。只需这样做:
XmlReader reader = XmlReader.Create(pomfile.FullName);
调用XmlTextReader.Create时要格外小心,实际上您正在调用基本静态方法XmlReader.Create。调用静态方法时始终使用基类,以避免混淆其含义(此处,返回的XmlReader并不总是XmlTextReader returned类型)“在Microsoft.NET Framework 2.0版中,建议使用System.Xml.XmlReader.create方法创建XmlReader实例。这使您能够充分利用此版本中引入的新功能。”但是,此建议似乎不适用于较新的框架版本-