C# Autofac未解析注入的属性
我有一个action filter属性,它有一个属性需要由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
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();
很可能是因为它是私有的。