ฉันได้รับข้อยกเว้นต่อไปนี้เมื่อพยายามกำหนดค่า Unity โดยใช้ Unity.Mvc5 ด้วยแอปพลิเคชัน MVC 5 โดยใช้ Identity 2.0 และ Identity 2.0 Samples สำเร็จรูป ฉันได้อ่าน SO กำหนดค่า Unity DI สำหรับ ASP.NET Identity และ ฉันยังไม่ชัดเจนว่าฉันขาดอะไรไป ฉันทำอะไรผิดที่นี่?
ประเภทปัจจุบัน System.Data.Common.DbConnection เป็นคลาสนามธรรมและไม่สามารถสร้างได้ คุณขาดการแมปประเภทหรือไม่?
[ResolutionFailedException: ความละเอียดของการขึ้นต่อกันล้มเหลว พิมพ์ = "myApp.Web.Controllers.AccountController" ชื่อ = "(ไม่มี)" มีข้อยกเว้นเกิดขึ้นขณะ: ขณะกำลังแก้ไข
ข้อยกเว้นคือ: InvalidOperationException - ประเภทปัจจุบัน System.Data.Common.DbConnection เป็นคลาสนามธรรมและไม่สามารถสร้างได้ คุณขาดการแมปประเภทหรือไม่?
ในช่วงเวลาของข้อยกเว้น คอนเทนเนอร์คือ:
การแก้ไข myApp.Web.Controllers.AccountController, (ไม่มี) การแก้ไขพารามิเตอร์ "userManager" ของ Constructor myApp.Web.Controllers.AccountController (myApp.Web.Models.ApplicationUserManager userManager) การแก้ไข myApp.Web.Models.ApplicationUserManager (ไม่มี) การแก้ไขพารามิเตอร์ "ร้านค้า" ของตัวสร้าง myApp.Web.Models.ApplicationUserManager(Microsoft.AspNet.Identity.IUserStore1[[myApp.Web.DAL.Profiles.ApplicationUser, myApp.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] store)
Resolving Microsoft.AspNet.Identity.EntityFramework.UserStore
1[myApp.Web.DAL.Profiles.ApplicationUser],(ไม่มี) (แมปจาก Microsoft.AspNet.Identity.IUserStore1[myApp.Web.DAL.Profiles.ApplicationUser], (none))
Resolving parameter "context" of constructor Microsoft.AspNet.Identity.EntityFramework.UserStore
1[[myApp.Web .DAL.Profiles.ApplicationUser, myApp.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](System.Data.Entity.DbContext context) การแก้ไข System.Data.Entity.DbContext, (none) การแก้ไขพารามิเตอร์ "การเชื่อมต่อที่มีอยู่" ของตัวสร้าง System.Data.Entity.DbContext (System.Data.Common.DbConnection existingConnection, System.Data.Entity.Infrastructure.DbCompiledModel model, System.Boolean contextOwnsConnection) การแก้ไข System.Data.Common.DbConnection, (ไม่มี)
ผู้ควบคุมบัญชีตามที่ฉันได้แก้ไขแล้ว
public AccountController(ApplicationUserManager userManager)
{
_userManager = userManager;
}
private ApplicationUserManager _userManager;
คอนเทนเนอร์ที่ฉันลงทะเบียนไว้
container.RegisterType<ApplicationUserManager>(new HierarchicalLifetimeManager());
container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new HierarchicalLifetimeManager());