在C#中从磁盘加载XML

时间:2011-06-16 06:46:13

标签: c#-4.0 c#-3.0 c#-2.0

我正在使用C#测试项目。我希望在项目内的文件Dump下加载一个Xml。我能够做到

  

string path =   “C:\ APP \ FrameworkTest \ TestProject \转储\ GetAddressById.xml”;

但我不想这样使用,因为如果驱动器发生变化,我的代码将失败。

在asp.net中我们有类似Server.MapPath()的东西。有这样的事吗?

2 个答案:

答案 0 :(得分:1)

例如:

var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var path = Path.Combine(dir, "Dump", "GetAddressById.xml")

希望这有帮助。

答案 1 :(得分:0)

如果您知道文件夹Dump将始终存在于应用程序的deployement文件夹中,那么您当然不需要硬编码完整路径。

对于ASP.net:

var path = System.IO.Path.Combine(Server.MapPath("/"), "Dump",
                             "GetAddressById.xml");

对于C#:

var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Dump", 
                                  "GetAddressById.xml");