注入属性或创建实例的方法是什么
我正在尝试创建一个自定义TagHelper
而无法获得IApplicationEnvironment
的实例,一旦TagHelper
基类只有一个无参数构造函数。
那么,为DI?
我找到了它。我们可以使用Microsoft.AspNet.Mvc
的[Activate]
属性。
namespace ActivatorWebSite.TagHelpers
{
[TargetElement("body")]
public class FooterTagHelper : TagHelper
{
[Activate] // here
IApplicationEnvironment ApplicationEnvironment { get; set; }
[Activate] // and here
public IHtmlHelper HtmlHelper { get; set; }
[Activate] // and here
public ViewDataDictionary ViewData { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.PostContent.SetContent($"<footer>{HtmlHelper.Encode(ViewData["footer"])}</footer>");
}
}
}