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。
为什么它不能解决我的依赖?
这就成功了:
// 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();