Autofac无法解决注入属性

时间:2014-10-03 10:19:32

标签: c# asp.net-mvc dependency-injection autofac

我有一个动作过滤器属性,它具有需要由AutoFac注入的属性。 因为它是一个动作过滤器属性,所以我不能使用构造函数注入。

属性:

  private readonly ISocialAppUnitOfWork _socialAppUnitOfWork;

消退:

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

配置:

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

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

在构造函数中获取服务后,_socialAppUnitOfWork属性保持为null。

为什么它不能解决我的依赖?

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

尝试使用: 。builder.RegisterType()为()InstancePerHttpRequest();