如何使用Autofac连接ASP.NET MVC 5 UserManager实例?

时间:2013-12-16 23:42:22

标签: asp.net-mvc dependency-injection autofac asp.net-mvc-5

随着MVC 5发布,Asp.Net.Identity位包括UserManager。实例化可能会变得混乱,我正在尝试添加Autofac控制器设置。

Controller的构造函数

public LoginController(UserManager<ApplicationUser> userManager)
{
    UserManager = userManager;
}

手动创建新实例:

var controller = new LoginController(UserManager<ApplicationUser>(new ApplicationUserStore<ApplicationUser>(new MyDbContext())));

ApplicationUserStore类/构造函数:

public class ApplicationUserStore<TUser> : IUserLoginStore<TUser>, IUserStore<TUser>, IDisposable where TUser : ApplicationUser

public ApplicationUserStore(IMyDbContext context)
{
    Context = context;
}

我有新的数据库上下文正常工作:

builder.RegisterType<MyDbContext>().As<IMyDbContext>();

LoginController的注册签名是什么?

1 个答案:

答案 0 :(得分:6)

我不知道AutoFac,但猜测:

builder.RegisterType<ApplicationUserStore<ApplicationUser>>()
    .As<IUserStore<ApplicationUser>>();
builder.RegisterType<UserManager<ApplicationUser>>();