如何使用autofac mvc3注入全局过滤器属性?

时间:2011-10-31 08:07:00

标签: autofac

builder.RegisterFilterProvider();

这可以在过滤器写入一个属性,如:

[TestFilter]
public ActionResult SomeAction(){...}

但不能在global.asax中注入全局过滤器寄存器,如

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{

    filters.Add(new TestFilterAttribute());

}

我可以做别的吗?

1 个答案:

答案 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>());