ASP Net MVC项目中的DI容器-您在哪里注册DAL \ BLL类?

时间:2018-07-09 18:39:08

标签: asp.net asp.net-web-api unity-container

将Web API 2与Unity IOC结合使用。我试图找出在哪里可以注册整个解决方案中使用的类型。

在Asp.Net Web API中,所有类型的注册都在一个名为UnityConfig的类中完成

public class UnityConfig
{
    public static void Register(HttpConfiguration config)
    {
        var container= new UnityContainer();

        container.RegisterType<IUsersService, UsersService>(); // BLL type
        container.RegisterType<IRolesService, RolesService>(); // BLL type
        container.RegisterType<IUnitOfWork, UnitOfWork>(); // DAL type

        GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);
    }
}

然后在Global.asax首次启动应用程序时进行配置。

问题所在-只要它只是BLL服务,一切都很好,应用程序无论如何都应该引用BLL。

但是当我也想注入的DataAccessLayer存储库开始工作时,这迫使我的主项目“应用层”引用了DAL项目。我不想要的依赖项。

我对这个概念的理解在哪里失败?

0 个答案:

没有答案