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

本文关键字:网站 路径 另一个 | 更新日期: 2023-09-27 18:06:51

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

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

这里我不能使用它,因为它不是一个Page。我怎样才能得到网站的路径?

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

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

这对我来说很有效:

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

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

为什么不传递给另一个类呢?

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("~"));

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

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