2015-03-24 3 views
0

Я пишу TagHelper для ASP.NET 5 и должен получить доступ к файловой системе из помощника, чтобы проверить, существует ли файл.Inject DI service в ASP.NET 5 Tag Helper

В предыдущих версиях я бы использовал HttpContext.Current.Server.MapPath или HttpRuntime.AppDomainAppPath, но они исчезли сейчас. Что такое эквивалент и как мне получить его из TagHelper?

ответ

0

Вы можете использовать атрибут [Activate], чтобы получить эту услугу впрыскивается в ваш помощник тега.

Пример:

public class TestTagHelper : TagHelper 
{ 
    public string Name { get; set; } = "Initial Name"; 

    public int Number { get; set; } = 1000; 

    [Activate] 
    public IApplicationEnvironment ApplicationEnvironment { get; set; } 

    public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) 
    { 
     .... 
    } 
} 
0

IApplicationEnvironment.ApplicationBasePath использование есть discution об этом на GitHub

How do you get current physical path inside Startup.cs

+0

Это именно то, что мне нужно, но я до сих пор не могу понять, как получить его внутри моего помощника тега. Я попытался добавить его как параметр конструктора, но он не был введен по умолчанию. –

+0

вы можете получить его при запуске набора свойств одного сингла? –

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