在我的asp.net应用程序中,我有一个util类将从xml文件读取一些数据,然后我可以稍后调用该类,该文件应该加载一次,所以我使用静态构造函数。
class UtilHelper{
static UtilHelper(){
XmlDocument doc=new XmlDocument();
doc.load("a.xml"); //here the asp.net cannot find the file,it always try to find file in the iis's dictionary.
}
}
有些人可能会建议我使用“Server.mappath(xxx)”
但是这个类不是xx.aspx.cs.所以上下文中没有“HttpRequest”或“HttpServerUtilly”。
有什么想法吗?
答案 0 :(得分:12)
使用HttpContext.Current.Server.MapPath
。
class UtilHelper
{
static UtilHelper()
{
XmlDocument doc = new XmlDocument();
string fileName = HttpContext.Current.Server.MapPath("~/App_Code/a.xml");
doc.load(fileName);
}
}
答案 1 :(得分:4)
尝试
var path = Path.Combine(
HostingEnvironment.ApplicationPhysicalPath,
"App_Code\\a.xml"
);