我正在构建一个标准的三层应用程序。
1 个用于前端的控制台应用程序
2 业务逻辑层
3 数据层
主要目的是显示数据库表中的一些客户数据。
我试图遵循“.NET 中的依赖注入”一书中的指导方针,没有从控制台到数据层的引用,也没有从业务层到数据层的引用。如果需要,可以轻松交换前端和数据层。
假设我在业务层有一个名为 CustomerService 的服务,它有一个GetCustomers()
方法
的构造函数CustomerService
需要ICustomerRepository
这样
public class CustomerService
{
ICustomerRepository repository;
public CustomerService(ICustomerRepository repository)
{
this.repository = repository;
}
public ICollection<Customer> GetCustomers()
{
return repository.GetCustomers();
}
}
在我的数据层
public class CustomerRepository : BLL.ICustomerRepository
{
public ICollection<Customer> GetCustomers()
{
// get the customers from the db
return customers;
}
}
在控制台应用程序中,我想使用 Ninject 调用创建 CustomerService 对象来满足 ICustomerRepository 依赖项。
class DIModule : NinjectModule
{
public override void Load()
{
Bind<>(ICustomerRepository).To<??????????????>()
}
}
如何绑定到数据层 CustomerRepository 类?我必须将控制台应用程序的引用添加到数据层才能正常工作?我究竟做错了什么?