14

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

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

我在程序集中看到了这个

using Nancy;
using System;

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

        public string GetRootPath();
    }
}

我不确定如何使用。

更新:我刚刚发现我需要加载的任何东西都可以从 bin/relase/ 目录中读取/写入。这是在 Nancy Self Hosting 环境中假设的方式吗?我想这是有道理的。

4

2 回答 2

11

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

于 2013-02-11T07:05:57.693 回答
0

如果您在无法注入依赖项的静态类(例如HtmlHelpers扩展)中需要它,至少 AFAIK,您可以使用.Net 4.x 的底层使用:https://github。 com/NancyFx/Nancy/blob/master/src/Nancy/DefaultRootPathProvider.csIRootPathProviderAppDomain.CurrentDomain.BaseDirectoryDefaultRootPathProvider

于 2017-05-04T16:01:35.213 回答