我有一个用 asp.net mvc 制作的 Web 应用程序,我正在使用 Ninject 来绑定接口。
现在,我有这个:
// Db Context
kernel.Bind<DbContext>().To<DbEntities>().InRequestScope();
// Repositories - which are using instance of DbEntities
kernel.Bind<ICustomerRepository>().To<CustomerRepository>();
kernel.Bind<IProductRepository>().To<ProductRepository>();
// Services - which are using instances of Repositories
kernel.Bind<ICustomerService>().To<CustomerService>();
kernel.Bind<IProductService>().To<ProductService>();
我将 DbContext 绑定到 RequestScope 中的 DbEntities,因为我想在同一个 Web 请求中使用相同的 DbContext。之后它应该处理它。
但是其他绑定应该如何?默认情况下它们是怎样的?
例如IProductRepository
,它有一个实例DbContext
(每个请求一个),也应该是InRequestScope()
?
IProductService
有一个实例IProductRepository
绑定应该如何适合 Web 应用程序?(而且我不会超载服务器的内存)