【发布时间】:2014-07-25 07:08:21
【问题描述】:
在我的设置类中,我有以下代码(在 Visual Studio 中使用 Autofac 和 MVC Web API 模板)
builder.RegisterType<CRMUserStore<IdentityUser>>().As<IUserLoginStore<IdentityUser>>()
.InstancePerRequest();
然后在 Startup.Auth 类中我有以下内容
UserManagerFactory = () => new UserManager<IdentityUser>(
DependencyResolver.Current.GetService<IUserLoginStore<IdentityUser>>());
这将返回空值。然后当我尝试而不是上面的时候
UserManagerFactory = () => new UserManager<IdentityUser>(
_container.Resolve<IUserLoginStore<IdentityUser>>()); //_container is IContainer
我收到一个错误提示
Autofac.dll 中出现“Autofac.Core.DependencyResolutionException”类型的异常,但未在用户代码中处理
附加信息:从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身.
我该如何解决这个问题?
【问题讨论】:
标签: c# asp.net-web-api dependency-injection autofac