我有一个动作过滤器属性,它具有需要由AutoFac注入的属性。 因为它是一个动作过滤器属性,所以我不能使用构造函数注入。
属性:
private readonly ISocialAppUnitOfWork _socialAppUnitOfWork;
消退:
public SecurityActionFilter()
{
_socialAppUnitOfWork = DependencyResolver.Current.GetService <ISocialAppUnitOfWork>();
}
配置:
builder.RegisterType<SecurityActionFilter>().InstancePerHttpRequest();
DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build()));
在构造函数中获取服务后,_socialAppUnitOfWork属性保持为null。
为什么它不能解决我的依赖?
答案 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();