Asp.net windows应用程序中的HttpContext.Current.Server.MapPath备选方案

Asp.net windows应用程序中的HttpContext.Current.Server.MapPath备选方案,asp.net,c#-4.0,Asp.net,C# 4.0,Windows应用程序中的“HttpContext.Current.Server.MapPath”在web应用程序中的替代方案是什么。我应该在windows应用程序中使用什么来访问文件 [编辑] 在窗口应用程序中,此选项的替代选项是什么 reader = XmlReader.Create( @"D:\EnviroTrack\EnviroTracker.Web\TestDevice\Data.xml", settings); 请建议您可以使用常规方法映射路径帮助将虚拟路径

Windows应用程序中的“HttpContext.Current.Server.MapPath”在web应用程序中的替代方案是什么。我应该在windows应用程序中使用什么来访问文件

[编辑] 在窗口应用程序中,此选项的替代选项是什么

reader = XmlReader.Create(
            @"D:\EnviroTrack\EnviroTracker.Web\TestDevice\Data.xml", settings);
请建议您可以使用常规方法<代码>映射路径帮助将虚拟路径转换为web服务器上的物理路径。winforms中不需要进行这种转换。您可能正在查找返回正在执行的程序集位置的

编辑-更新后的问题应在Winform中处理。 有很多重载,其中之一是
(string,XmlReaderSettings)
。这是你在问题中使用的重载。您可以使用相同的方法,但如果愿意,可以使用不同的目录

reader = XmlReader.Create(@"C:\Data.xml", settings);
要获取执行程序集的目录,可以使用。所以可能是这样的:

reader = XmlReader.Create(AppDomain.CurrentDomain.BaseDirectory + "Data.xml", settings);

我认为
Assembly.GetExecutingAssembly.Location
返回
exe
dll
名称,有段时间没有尝试过此功能,因此无法确定


Application.StarupPath
可能会执行此任务。

@DotnetSparrow:Updated答案。@DotnetSparrow-Updated。您可以使用BaseDirectory属性,该属性将返回可执行文件的路径。然后,您可以添加与此路径相关的
Data.xml
文件