Как внедрить глобальное свойство фильтра с autofac mvc3? - PullRequest
0 голосов
/ 31 октября 2011

builder.RegisterFilterProvider();

Это может добавить свойство в запись фильтра для действия, например:

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

Но не может ввести регистр глобального фильтра в global.asax, например

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{

    filters.Add(new TestFilterAttribute());

}

Могу ли я сделать что-то еще?

1 Ответ

1 голос
/ 06 ноября 2011

установить свойство при регистрации глобального фильтра на 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>());
...