我使用ASP.NET MVC 5 Unity 3和Unity bootstrapper for ASP.NET MVC解決。類型不統一[MVC 5]
在UnityConfig.cs文件,我註冊RegisterTypes方法如下類型:
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterType<IProjectRepository, ProjectRepository>();
}
在一個MVC控制器,我解決這樣的:
UnityContainer container = new UnityContainer();
public ActionResult List()
{
var projectRepository = container.Resolve<IProjectRepository>();
return View(projectRepository.GetAll());
}
但我正在逐漸以下例外:
System.InvalidOperationException:類型IProjectRepository沒有 可訪問的構造函數。
當我註冊了控制器內部的類型,那麼它的作品完美,所以在某種程度上團結忘記了什麼是在UnityConfig.RegisterTypes()
定義。
我把一個破發點中UnityConfig.RegisterTypes()
和方法被調用。
ProjectRepository真的有無參數的構造函數嗎?你只有一個名爲'ProjectRepository'的類嗎? – Bond
是的,它有一個無參數的構造函數,是的,只有一個類。如果我在控制器中包含我的Unity DI代碼,那麼它工作正常。 – davenewza
您是否創建了類型爲IProjectRepository的依賴項屬性? –