Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将XmlReader转换为XmlTextReader_C#_Xmlreader_Xmltextreader - Fatal编程技术网

C# 将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

如何将XmlReader转换为XmlTextReader

代码段:

XmlTextReader reader = XmlTextReader.Create(pomfile.FullName);
以下是我得到的生成错误:

Cannot implicitly convert type 'System.Xml.XmlReader' to 'System.Xml.XmlTextReader'. An
存在显式转换(是否缺少强制转换?)

pomfile的类型为FileInfo

XmlTextReader。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实例。这使您能够充分利用此版本中引入的新功能。”但是,此建议似乎不适用于较新的框架版本-