如何从另一个类获取网站根路径

时间:2013-04-02 05:09:48

标签: c# asp.net

我有asp.net网站(使用网络表单)。我有一个名为FileHandler的类,在该类中我想获得该站点的根路径。

通常我使用Server.MapPath("~")来获取网页内的路径。

我不能使用它,因为它不是Page。我怎样才能获得网站的路径?

修改
更多关于FileHandler类: FileHandler是一个静态类,我将把站点的根路径分配给一个satic变量。

3 个答案:

答案 0 :(得分:2)

这对我有用:

HttpContext.Current.Server.MapPath("YOUR PATH");

我在与我的某个页面分开的类中使用了它。通常你不会从HttpContext调用它。

答案 1 :(得分:1)

为什么不将它传递给其他班级?

public class FileHandler {
    public string SiteRoot { get; set; }

    // or..
    public FileHandler(string siteRoot) {
        SiteRoot = siteRoot;
    }
}

FileHandler fileHandler = new FileHandler() { SiteRoot = Server.MapPath("~") };
// or..
FileHandler fileHandler = new FileHandler(Server.MapPath("~"));

答案 2 :(得分:0)

一种选择是当您创建FileHandler的对象时,然后将路径作为构造函数参数传递。

public class FileHandler 
{
   public FileHandler(string rootPath)
    {
       // store root path as a property
    }
}