Autofac未解析注入的属性

本文关键字:属性 注入 Autofac | 更新日期: 2023-09-27 18:25:29

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

属性:

  private readonly ISocialAppUnitOfWork _socialAppUnitOfWork;

解决:

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

配置:

   builder.RegisterType<SecurityActionFilter>().InstancePerHttpRequest();
   DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build()));

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

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

Autofac未解析注入的属性

这就成功了:

  // 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();

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