将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项目。我不想要的依赖项。
我对这个概念的理解在哪里失败?