1

私はasp.net Webサイトを持っています(Webフォームを使用)。というクラスがFileHandlerあり、そのクラス内でサイトのルート パスを取得したいと考えています。

通常、私Server.MapPath("~")は Web ページ内のパスを取得するために使用します。

ここではページではないため、使用できません。Web サイトのパスを取得するにはどうすればよいですか?


クラスについてさらに編集FileHandlerFileHandler静的クラスであり、サイトのルートパスをsatic変数に割り当てます。

4

3 に答える 3

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("~"));
于 2013-04-02T05:12:22.690 に答える
0

1つのオプションは、のオブジェクトを作成するときにFileHandler、パスをコンストラクターパラメーターとして渡すことです。

public class FileHandler 
{
   public FileHandler(string rootPath)
    {
       // store root path as a property
    }
}
于 2013-04-02T05:12:13.017 に答える