简单的喷射器和层

时间:2014-09-15 20:05:39

标签: c# asp.net-mvc dependency-injection simple-injector

我是依赖注射剂的新手,但发现了简单的注射器,它看似简单易用而且功能强大。

在我的项目中,我有以下图层

Dal - 由调用dbcontext的存储库组成。每个repo都有自己的接口,用于实现IRepository

例如 CompanyRepository实现ICompanyRepository

ICompanyRepository实现IRepository

class CompanyRepository : ICompanyRepository
{
    public CompanyRepository(IDbContext context)
    {
        _context = context;
    }
}

模特 - 我所有的poco对象

服务 - 调用Dal加载模型对象的业务逻辑。每个服务都有自己的接口,可以实现IService。例如

CompanyService实现ICompanyService。

ICompanyService实现了IService。

class CompanyService : ICompanyService
{
    public CompanyService(ICompanyRepository repo)
    {
        _repo = repo;
    }
}

WebApi - mvc web api项目。应该调用服务层来加载和保存模型。没有提到Dal。

在WebApi中,我添加了SimpleInjector。而我的CompanyCo troller有一个像这样的构造函数

class CompanyController  : ApiController
{
    public CompanyController(ICompanyService service)
    {
        _service = service;
    }
}

现在在我的application_start代码中,我注册ICompanyService以注入CompanyService。现在我得到一个错误,说CompanyService希望ICompanyRepository注入。但是我的webApi项目没有引用dal层。

我怎样才能让它发挥作用?我不应该从webapi中引用dal。我猜我会在repos中遇到同样的问题,因为他们在构造函数中有IDbContext。

提前致谢

0 个答案:

没有答案
相关问题