2

在ASP.NET MVC3应用程序中,我的控制器将使用BL“管理”类的集合,而后者将使用存储库。这些存储库依靠EF DbContext实例来执行其职责。实例化存储库实例中的DbContext

我打算配置IoC容器做了依赖注入下面的方式(数据模块)

Bind<StoreContext>().ToSelf().InRequestScope(); 
Bind<ICatUserRepository>().To<GenericUserRepository>().InRequestScope(); 

StoreContext是一个DbContext。它是构造函数注入到GenericUserRepository。 这种方式,我假设,the rule of my DbContext to be instantiated in also PerRequest将保持完成,对吧?

回答

1

是的,它肯定是 - 因为ICatUserRepository是在请求范围级别解决了IoC容器将在该点(每个请求)解决其依赖关系的构造函数注射后创建的GenericUserRepository一个新的实例。

解决了该StoreContext依赖性意味着IoC容器将通过为StoreContext的结合,检查是否有已经是StoreContext当前请求现有实例,如果不能创造一个新的副本注入 - 在你的情况这意味着您会为每个新请求获得一个新实例StoreContext