ASP.NET MVC, Ninject, einzelne Instanz pro Anforderung für mehrere Konstruktoren
Im Versuch, ein Unit-of-Work-Muster zu implementieren, indem eine Unit-of-Work-Instanz in meine Repositorys übergeben wird.
Relevanter Code aus 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>();
}
}
Repository-Konstruktoren:
public class ProductRepository {
IUnitOfWork unitOfWork;
public ProductRepository(IUnitOfWork unitOfWork) {
this.unitOfWork = unitOfWork;
}
}
public class CategoryRepository {
IUnitOfWork unitOfWork;
public CategoryRepository(IUnitOfWork unitOfWork) {
this.unitOfWork = unitOfWork;
}
}
Was ich will ist, dass maximal 1 Instanz vonSqlUnitOfWork
wird pro Anforderung erstellt und (über die jeweiligen Konstruktoren) an meine Repositorys übergeben.
Ist derInRequestScope()
Methode auf demIUnitOfWork
verbindlich genug? Wenn nicht, wie kann ich das erreichen?