builder.RegisterFilterProvider();
这可以在过滤器写入一个属性,如:
[TestFilter]
public ActionResult SomeAction(){...}
但不能在global.asax中注入全局过滤器寄存器,如
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new TestFilterAttribute());
}
我可以做别的吗?
答案 0 :(得分:1)
在global.asax
上注册全局过滤器时设置属性filters.Add(new TestFilterAttribute() { TObj=AutofacDependencyResolver.Current.ApplicationContainer.Resolve<ITest>() });
我尝试某种方式
builder.RegisterType<TestFilterAttribute>().PropertiesAutowired()
builder.RegisterType<TestFilterAttribute>().OnActivating(x=>x.Instance.TObj=x.Context.Resolve<ITest>())
builder.RegisterType<TestFilterAttribute>().WithProperty("TObj",new Test())
以上都不起作用
或
builder.RegisterType<TestFilterAttribute>().PropertiesAutowired();
并使用以下代码过滤寄存器:
filters.Add(AutofacDependencyResolver.Current.ApplicationContainer.Resolve<TestFilterAttribute>());