C# 如何从解决方案中的文件加载XML文件,使用嵌入式资源构建?
以下是我的解决方案的概要: 我已经将构建设置为Embedded Resource,当我生成应用程序时,XML文件不会出现在/Release文件夹中。这是正确的,我想要这种行为 现在,我正尝试将该文件加载到XDocument中,以便能够解析以下文件中的数据:C# 如何从解决方案中的文件加载XML文件,使用嵌入式资源构建?,c#,.net,xml,linq-to-xml,C#,.net,Xml,Linq To Xml,以下是我的解决方案的概要: 我已经将构建设置为Embedded Resource,当我生成应用程序时,XML文件不会出现在/Release文件夹中。这是正确的,我想要这种行为 现在,我正尝试将该文件加载到XDocument中,以便能够解析以下文件中的数据: class Program { static void Main(string[] args) { Console.WriteLine("Parsing XML."); XDocument c
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Parsing XML.");
XDocument championXml = XDocument.Load("Champions.xml");
Console.ReadKey();
}
}
我得到一个文件未找到错误,因为它试图在发布文件夹的完整路径中找到xml文件
如何将此数据正确加载到XDocument中?使用GetManifestResourceStream:
通过调用GetManifestResourceNames可以找到用于引用资源的确切名称。您应该从程序集获取流:
Assembly.GetExecutingAssembly().GetManifestResourceStream(name)
其中名称类似于:“LinqToXml.Champions.xml”直接引用资源属性,并使用解析而不是加载:
XDocument championXml = XDocument.Parse(Properties.Resources.ChampionsXML);
^^^^^^^^^^^^
//Name of your resource |
命名空间会因项目结构的不同而有所不同。您需要加载资源,而不是项目中的文件。@jrummell:我的项目没有任何资源文件。你能详细说明一下吗?相关的和好的服装。我使用的是.NET3.5,XDocument.Loadstream似乎只适用于.NET4及更高版本。我不能在我的应用程序中使用它。如何使用此流并将其转换为xml?在另一个问题中找到了我的答案。谢谢将此标记为答案。
XDocument championXml = XDocument.Parse(Properties.Resources.ChampionsXML);
^^^^^^^^^^^^
//Name of your resource |