Нэнси: есть ли эквивалент Server.MapPath( "~/" )? - программирование
Подтвердить что ты не робот

Нэнси: есть ли эквивалент Server.MapPath( "~/" )?

Я не могу найти эквивалент в 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();
    }
}

Я не уверен, как использовать.

update: я просто понял, что все, что мне нужно загрузить, можно просто прочитать/записать из каталога bin/relase/. Это предполагаемый способ сделать это в среде Nancy Self Hosting? Думаю, это имело бы смысл.

4b9b3361

Ответ 1

Вы можете зависеть от IRootPathProvider и использовать это для вызова GetRootPath(), который даст вам корень вашего приложения, и вы можете добавить оттуда (я бы рекомендовал использовать Path.Combine)

Ответ 2

Если вам это нужно в статическом классе (например, в расширении HtmlHelpers), где невозможно установить зависимость IRootPathProvider, по крайней мере, AFAIK, вы можете использовать AppDomain.CurrentDomain.BaseDirectory, что используется DefaultRootPathProvider капот для .Net 4.x: https://github.com/NancyFx/Nancy/blob/master/src/Nancy/DefaultRootPathProvider.cs