2014-10-03 68 views
1

我有一個操作過濾器屬性,它具有需要由AutoFac注入的屬性。 因爲它是一個動作過濾器屬性,我不能使用構造函數注入。Autofac未解析注入屬性

物業:

private readonly ISocialAppUnitOfWork _socialAppUnitOfWork; 

解析:

public SecurityActionFilter() 
    { 
      _socialAppUnitOfWork = DependencyResolver.Current.GetService <ISocialAppUnitOfWork>(); 
    } 

配置:

builder.RegisterType<SecurityActionFilter>().InstancePerHttpRequest(); 

    DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build())); 

得到Servi大街後在構造函數中,_socialAppUnitOfWork屬性保留爲空。

爲什麼不解決我的依賴問題?

+0

最有可能的,因爲它是'private'。 – silkfire 2016-04-26 08:11:56

回答

1

這奏效了:

// Set this action filter for every controller and inject interface 
    builder.Register(c => new SecurityActionFilter(c.Resolve<ISocialAppUnitOfWork>())) 
      .AsActionFilterFor<Controller>().InstancePerHttpRequest(); 

    // Register all the action filters 
    builder.RegisterFilterProvider(); 
0

嘗試使用: builder.RegisterType()。As()。InstancePerHttpRequest();