2013-02-11 2 views
14

Я не могу найти эквивалент в Nancy для System.Web.HttpContext.Current.Server.MapPath() в среде Nancy.Нэнси: есть ли эквивалент 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? Думаю, это имело бы смысл.

ответ

10

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

+0

Я всегда использую путь. комбайн. он потребовал только один проект качества производства, чтобы я никогда не совмещал строки строк вручную снова) = – FlavorScape

+0

Должны ли быть реализованы IHideObjectMembers? – Cynede

+0

Мысль, которая была только для студии intellisense/visual, так что это зависит от вас. Это просто скрывает базовые функции для завершения кода. – FlavorScape

0

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

Смежные вопросы