南希:有没有Server.MapPath(“〜/”)等价?

时间:2013-02-11 04:45:51

标签: c# path hosting nancy

我似乎无法在Nancy框架中的System.Web.HttpContext.Current.Server.MapPath()中找到Nancy中的等价物。

我只想加载相对于应用程序服务的文本文件。

我在程序集中看到了这个

using Nancy;
using System;

namespace Nancy.Hosting.Self
{
    public class FileSystemRootPathProvider : IRootPathProvider, IHideObjectMembers
    {
        public FileSystemRootPathProvider();

        public string GetRootPath();
    }
}

我不确定如何使用。

更新:我只是想出了我需要加载的东西,只需从bin / relase /目录中读取/写入即可。这是在Nancy Self Hosting环境中做到的假设方式吗?我想那是有道理的。

2 个答案:

答案 0 :(得分:11)

您可以依赖IRootPathProvider并使用它来调用GetRootPath(),它会为您提供应用程序的根目录,您可以从那里添加(我建议使用Path.Combine

答案 1 :(得分:0)

如果您需要在静态类(例如HtmlHelpers扩展名)中无法注入IRootPathProvider依赖项,至少AFAIK,则可以使用AppDomain.CurrentDomain.BaseDirectory DefaultRootPathProvider在.Net 4.x的引擎盖下使用的内容:https://github.com/NancyFx/Nancy/blob/master/src/Nancy/DefaultRootPathProvider.cs