我正在使用新的ASP.NET MVC 5 Identity框架进行身份验证.我传统上使用StructureMap进行依赖注入,但是我在使用新的AccountController进行连接时遇到了问题.
我的AccountController构造函数如下所示:
public AccountController() : this(new UserManager(new UserStore (new OmpDbContext()))) { } public AccountController(UserManager userManager) { UserManager = userManager; }
我的StructureMap配置如下所示:
public static class IoC { public static IContainer Initialize() { ObjectFactory.Initialize(x => { x.Scan(scan => { scan.TheCallingAssembly(); scan.WithDefaultConventions(); }); //x.Register>(() => // new UserStore (new OmpDbContext())); x.For ().HttpContextScoped(); }); return ObjectFactory.Container; } }
当我运行项目时,我收到以下错误:
尝试获取AccountController类型的实例时出现激活错误,键""
有关如何为构造注入新建UserManager对象的任何想法?我试过四处寻找但却找不到多少指导.
将以下代码添加到Container初始化方法中.
x.For<Microsoft.AspNet.Identity.IUserStore<ApplicationUser>>() .Use<Microsoft.AspNet.Identity.EntityFramework.UserStore<ApplicationUser>>(); x.For<System.Data.Entity.DbContext>().Use(() => new ApplicationDbContext());