Ответ 1
Вы можете зависеть от IRootPathProvider
и использовать это для вызова GetRootPath()
, который даст вам корень вашего приложения, и вы можете добавить оттуда (я бы рекомендовал использовать Path.Combine
)
Я не могу найти эквивалент в 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? Думаю, это имело бы смысл.
Вы можете зависеть от IRootPathProvider
и использовать это для вызова GetRootPath()
, который даст вам корень вашего приложения, и вы можете добавить оттуда (я бы рекомендовал использовать Path.Combine
)
Если вам это нужно в статическом классе (например, в расширении HtmlHelpers
), где невозможно установить зависимость IRootPathProvider
, по крайней мере, AFAIK, вы можете использовать AppDomain.CurrentDomain.BaseDirectory
, что используется DefaultRootPathProvider
капот для .Net 4.x: https://github.com/NancyFx/Nancy/blob/master/src/Nancy/DefaultRootPathProvider.cs