C# 读取XML文件(仅来自项目)
我必须从本地Visual Studio 2013项目结构中读出一个XML文件(包含现有内容),但不能从硬盘目录中读出(如大多数教程/指南中所述,我在过去2小时内阅读过…)。在读出过程之后,我必须在其中搜索一些标签名 我必须这样做,因为要求是,指定的本地XML文件不应该在生成过程之后出现在输出目录中 那我该怎么做呢 ================================================================================== 这是我的AccessData.xml文件(在项目目录:“LinqToXML_Example/AccessData.xml”中):C# 读取XML文件(仅来自项目),c#,xml,project,local,C#,Xml,Project,Local,我必须从本地Visual Studio 2013项目结构中读出一个XML文件(包含现有内容),但不能从硬盘目录中读出(如大多数教程/指南中所述,我在过去2小时内阅读过…)。在读出过程之后,我必须在其中搜索一些标签名 我必须这样做,因为要求是,指定的本地XML文件不应该在生成过程之后出现在输出目录中 那我该怎么做呢 ================================================================================== 这是我的Acces
不幸的是,我无法访问我的xml文件:((大致扫描了您的代码后,下面这一行似乎是问题所在:
var textStream = asm.GetManifestResourceStream("AccessData.xml");
默认情况下,资源名称的前缀是项目的默认名称空间。此外,名称中包含文件的项目文件夹。因此,在您的情况下,资源名称可能是“LinqToXML\u Example.AccessData.xml”,而不是“AccessData.xml”
此外,还应将构建操作设置为嵌入式资源
如果要查找项目文件中包含的所有资源名称,可以使用以下代码并在调试时检查返回值:
string[] names = asm.GetManifestResourceNames();
有关详细信息,请参阅此部分。将内容存储到程序中的一个简单字符串中并直接使用它而不是使用资源并不容易?好的,但我的“program.cs”-文件中已经有2个错误。编译器抱怨道:“无法访问受保护的构造函数‘XmlReader’。”。我该如何解决这个问题?@phonophunk:你不能直接实例化XmlReader。将
新XmlReader(textStream);
更改为新XmlTextReader(textStream);
应该会有帮助。非常感谢,先生!:)我很高兴你的回答!
Build Action = "Resource" // Bug fix: Has to be changed to: 'Embeded Resource'
Copy to output directory = "Never"
var textStream = asm.GetManifestResourceStream("AccessData.xml");
string[] names = asm.GetManifestResourceNames();