Asp.net
ASP.NET MVC,Ninject,每個請求的單個實例對多個建構子
我試圖通過將工作單元實例傳遞到我的儲存庫來實現工作單元模式。
來自 Global.asax 的相關程式碼。
public class SiteModule : NinjectModule { public override void Load() { Bind<IUnitOfWork>().To<SqlUnitOfWork>() .InRequestScope() .WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["Entities"].ConnectionString); Bind<IProductRepository>().To<ProductRepository>(); Bind<ICategoryRepository>().To<CategoryRepository>(); } }儲存庫建構子:
public class ProductRepository { IUnitOfWork unitOfWork; public ProductRepository(IUnitOfWork unitOfWork) { this.unitOfWork = unitOfWork; } } public class CategoryRepository { IUnitOfWork unitOfWork; public CategoryRepository(IUnitOfWork unitOfWork) { this.unitOfWork = unitOfWork; } }我想要的
SqlUnitOfWork是每個請求最多創建 1 個實例並將其傳遞到我的儲存庫中(通過它們各自的建構子)。綁定上的
InRequestScope()方法夠嗎?IUnitOfWork如果不是我怎麼能做到這一點?
您擁有的程式碼可以正常工作。
IUnitOfWork任何請求它的類都只會提供一個實例(通過建構子/屬性注入或呼叫核心.Get<>等)