server.mappath null

Dot*_*row -3 c# asp.net windows-services

可能重复:
HttpContext.Current.Server null

我的ASP .NET解决方案中有三个项目:

  • 一个类库
  • 一个Web应用程序
  • 一个Windows服务

我的Web应用程序中有一个带有XML文件的文件夹.需要使用此XML文件填充类库函数的XMLreader.我添加了这个:

var reader = XmlReader.Create(HttpContext.Current.Server.MapPath("~/TestDevice/Data.xml"), settings);
Run Code Online (Sandbox Code Playgroud)

当从我们的应用程序调用此函数时,它工作.当从Windows应用程序调用类库的这个函数时,我在HttpContext.Current.Server获得空引用,因为它在Windows应用程序中不可用.虽然适用于Windows和Web应用程序,但我不想提供硬编码路径.我可以使用一些不起作用来访问来自不同项目或任何替代server.mappath的文件.请建议解决方案

谢谢

小智 9

System.AppDomain.CurrentDomain.BaseDirectory 应该做的伎俩.

http://msdn.microsoft.com/en-us/library/system.appdomain.basedirectory.aspx

获取程序集解析程序用于探测程序集的基目录.