Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# 如何从解决方案中的文件加载XML文件,使用嵌入式资源构建?_C#_.net_Xml_Linq To Xml - Fatal编程技术网

C# 如何从解决方案中的文件加载XML文件,使用嵌入式资源构建?

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

以下是我的解决方案的概要:

我已经将构建设置为Embedded Resource,当我生成应用程序时,XML文件不会出现在/Release文件夹中。这是正确的,我想要这种行为

现在,我正尝试将该文件加载到XDocument中,以便能够解析以下文件中的数据:

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 |