Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 如何使用XDocument.Load()获取应用程序目录中的文件_C#_.net_Xml_Linq To Xml_System - Fatal编程技术网

C# 如何使用XDocument.Load()获取应用程序目录中的文件

C# 如何使用XDocument.Load()获取应用程序目录中的文件,c#,.net,xml,linq-to-xml,system,C#,.net,Xml,Linq To Xml,System,我在项目的文件夹中有一个XML文件。我想使用XDocument.Load(string),但我是否必须将应用程序的完整路径作为URI的一部分来编写(例如在我的示例中) 最好将XML文件添加为项目资源:转到项目的属性,然后转到资源选项卡。选择添加资源并添加文件。 然后,您将能够通过这种方式获取XDocument: XDocument xml = XDocument.Parse(Properties.Resources.Registro); 然而,如果你想让一切都像你做的那样,你可以用反思。 请参

我在项目的文件夹中有一个XML文件。我想使用
XDocument.Load(string)
,但我是否必须将应用程序的完整路径作为URI的一部分来编写(例如在我的示例中)


最好将XML文件添加为项目资源:转到项目的属性,然后转到资源选项卡。选择添加资源并添加文件。 然后,您将能够通过这种方式获取XDocument:

XDocument xml = XDocument.Parse(Properties.Resources.Registro);
然而,如果你想让一切都像你做的那样,你可以用反思。
请参见此处的答案:

另一种绕过ressource问题的方法是将文件添加到project(与ressource解决方案相同),然后单击该文件,并在属性选项卡中选择“复制到输出路径”中的“始终复制”。这样,当您构建时,文件将被复制到输出目录中,操作非常简单

 XDocument xml = XDocument.Load("Registro.xml");

我认为您要么正在寻找项目路径,要么正在寻找组装路径。。。不管怎样,这个问题都会有帮助。。我更倾向于“更新时复制”。这有点干净。@JurijsKastanovs这不是“干净”而是不同的。在某些情况下,如果不是较新的,则需要进行复制(例如,如果您的应用程序修改了可以在“调试”中启动的xml文件,请在visual studio中进行一些更改,则应用程序将更改该文件,而在下一次调试时,您的VS更改将被忽略,因为目标文件上的修改日期将比解决方案中的部署日期更新)。这实际上取决于他们的用例
 XDocument xml = XDocument.Load("Registro.xml");