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