在ASP.NET MVC3应用程序中,我的控制器将使用一组BL“管理器”类,而这些类又将使用存储库。这些存储库依赖于EF 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将继续实现,对吧?
答案 0 :(得分:1)
是的,肯定会是 - 因为ICatUserRepository
在请求范围级别解析,IoC容器将在此时(对于每个请求)在解析构造函数的依赖关系后创建GenericUserRepository
的新实例注射。
解析StoreContext
依赖关系意味着IoC容器将通过StoreContext
的绑定,检查当前请求是否已存在StoreContext
的现有实例< / em>如果没有创建要注入的新副本 - 在您的情况下,这意味着您为每个新请求获得StoreContext
的新实例。