1
以前曾询问过这种情况的道歉。我无法找到类似的问题或帖子。BLL中的数据合同和模型的依赖注入
我有一个统一的DI框架的解决方案。
我已经非常最近试图理解TDD和DI的概念。希望这个应该成为最后一个问题,然后才能真正将应用移植到我的实际应用中。
我明白通过构造函数注入依赖关系的概念,这是我的BLL看起来像现在:
的BLL类调用CarService,有一个方法GetCarDetails:
class CarService
{
IRepository repository;
CarService(IRepository repository)
{
this.repository = repository;
}
CarResponse GetCarDetails(CarRequest request)
{
CarResponse carResponse = new CarResponse();
CarModel car = this.repository.SelectCarById(request.CarId);
if(car!=null)
{
carResponse.Make = car.Make;
carResponse.Reg = car.Reg;
}
return carResponse;
}
}
使用this question中的组合根(CR)建议我正在使用我的WebAPi项目作为CR项目。我希望我的所有项目将只在CR称为在这个问题建议和here
如何以往在上面的示例代码,我需要有一个参考我的DataContracts和示范项目CarService做:
CarResponse carResponse = new CarResponse();
CarModel car = this.repository.SelectCarById(request.CarId);
并接受CarRequest作为方法参数。
那是好做吗? (这将意味着DataContracts和示范项目不受CR,但也CarService只是参考)
还是应该这也通过某种DI技术来解决。如果是这样,怎么样?