将 DI 服务注入 ASP.NET 5 Tag Helper
Inject DI service into ASP.NET 5 Tag Helper
我正在为 ASP.NET 5 编写一个 TagHelper,需要从助手内部访问文件系统以检查文件是否存在。
在以前的版本中,我会使用 HttpContext.Current.Server.MapPath 或 HttpRuntime.AppDomainAppPath,但现在这些都没有了。什么是等价物,我如何从 TagHelper 中获得它?
使用 IApplicationEnvironment.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)
{
....
}
}
我正在为 ASP.NET 5 编写一个 TagHelper,需要从助手内部访问文件系统以检查文件是否存在。
在以前的版本中,我会使用 HttpContext.Current.Server.MapPath 或 HttpRuntime.AppDomainAppPath,但现在这些都没有了。什么是等价物,我如何从 TagHelper 中获得它?
使用 IApplicationEnvironment.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)
{
....
}
}