将DI服务注入ASP.NET 5 Tag Helper

时间:2015-03-24 13:36:55

标签: asp.net-core

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

在以前的版本中,我会使用HttpContext.Current.Server.MapPath或HttpRuntime.AppDomainAppPath,但现在这些都没有了。什么是等效的,我如何从TagHelper中获取它?

2 个答案:

答案 0 :(得分:0)

使用IApplicationEnvironment.ApplicationBasePath在github上讨论这个问题

How do you get current physical path inside Startup.cs

答案 1 :(得分: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)
    {
       ....
    }
}