Asp.net core 将DI服务注入ASP.NET 5标记帮助程序

Asp.net core 将DI服务注入ASP.NET 5标记帮助程序,asp.net-core,Asp.net Core,我正在为ASP.NET 5编写一个标记帮助程序,需要从帮助程序中访问文件系统,以检查文件是否存在 在以前的版本中,我会使用HttpContext.Current.Server.MapPath或HttpRuntime.AppDomainAppPath,但现在已经没有了。什么是等价物以及如何从TagHelper中获得它?使用iaapplicationenvironment.ApplicationBasePath在github上对此有一个讨论 您可以使用[Activate]属性将此服务注入到标记助手中

我正在为ASP.NET 5编写一个标记帮助程序,需要从帮助程序中访问文件系统,以检查文件是否存在

在以前的版本中,我会使用HttpContext.Current.Server.MapPath或HttpRuntime.AppDomainAppPath,但现在已经没有了。什么是等价物以及如何从TagHelper中获得它?

使用iaapplicationenvironment.ApplicationBasePath在github上对此有一个讨论

您可以使用[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)
    {
       ....
    }
}

这正是我所需要的,但我仍然不知道如何将其放入标记助手中。我尝试将其作为构造函数参数添加,但默认情况下没有注入。您可以在启动时获取它,设置singleton的属性可能是什么?