我一直在做一个项目(C#),其中的一部分是用一个嵌入的xml文件填充数据网格。
虽然我现在找到了一种方法来完成这项工作,但我仍然对其背后的理论感到困惑。在我继续做这个项目之前,我想先停下来,确保我完全理解它。
我目前工作的代码是;
XmlDataDocument myXML = new XmlDataDocument();
StringReader mytempXML = (new StringReader(BasicTest.Properties.Resources.myxml));
myXML.DataSet.ReadXml(mytempXML);让我困惑的是,在这个解决方案之前,我正在尝试以下的方法;
myXML.DataSet.ReadXml(BasicTest.Properties.Resources.myxml);但它不起作用。但是,使用完整的文件路径(如下面所示)是有效的。
myXML.DataSet.ReadXml("C:/..etc../myxml.xml");我的问题是:如果您正在从资源中读取,但使用完整的文件路径却不使用?,为什么ReadXml方法需要一个StringReader?
如果有人能给出解释,那就太好了。谢谢。
发布于 2014-01-28 16:05:49
这是因为ReadXml方法接受一个字符串。该字符串必须是文件的名称。它不可能是XML。如果您传递给它一个字符串,即XML,它会认为这是文件的名称!它没有聪明地查看字符串并问“这个字符串XML,还是一个文件名?”想办法解决这个问题。
// Summary:
// Reads XML schema and data into the System.Data.DataSet using the specified
// file.
//
// Parameters:
// fileName:
// The filename (including the path) from which to read.
public XmlReadMode ReadXml(string fileName);通过将XML封装在一个字符串读取器或流或其他东西中,您将调用一个不同的重载,该重载要求XML而不是文件名。
https://stackoverflow.com/questions/21410291
复制相似问题