C# Autofac未解析注入的属性

C# Autofac未解析注入的属性,c#,asp.net-mvc,dependency-injection,autofac,C#,Asp.net Mvc,Dependency Injection,Autofac,我有一个action filter属性,它有一个属性需要由AutoFac注入。 因为它是一个动作过滤器属性,所以我不能使用构造函数注入 属性: private readonly ISocialAppUnitOfWork _socialAppUnitOfWork; public SecurityActionFilter() { _socialAppUnitOfWork = DependencyResolver.Current.GetService <IS

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

属性:

  private readonly ISocialAppUnitOfWork _socialAppUnitOfWork;
  public SecurityActionFilter()
    {
          _socialAppUnitOfWork = DependencyResolver.Current.GetService <ISocialAppUnitOfWork>();
    }
解决:

  private readonly ISocialAppUnitOfWork _socialAppUnitOfWork;
  public SecurityActionFilter()
    {
          _socialAppUnitOfWork = DependencyResolver.Current.GetService <ISocialAppUnitOfWork>();
    }
publicsecurityactionfilter()
{
_socialAppUnitOfWork=DependencyResolver.Current.GetService();
}
配置:

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

   DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build()));
builder.RegisterType();
SetResolver(新的AutofacDependencyResolver(builder.Build());
在构造函数中获取服务后_socialAppUnitOfWork属性仍为null

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

尝试使用: builder.RegisterType()

这就成功了:

  // 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();
//为每个控制器和注入接口设置此操作筛选器
Register(c=>newsecurityactionfilter(c.Resolve()))
.AsActionFilterFor().InstancePerHttpRequest();
//注册所有操作筛选器
builder.RegisterFilterProvider();

很可能是因为它是私有的。