这是一个新手问题,我正在使用DI通过配置在运行时解析接口的对象。
<unity>
<containers>
<container>
<types>
<type
type="BusinessLayer.IBAL, BusinessLayer, Version=1.0.0.0, Culture=neutral"
mapTo="BusinessLayer.BAL, BusinessLayer, Version=1.0.0.0, Culture=neutral" />
<type
type="DataAccessLayer.IDAL, DataAccessLayer"
mapTo="DataAccessLayer.DAL, DataAccessLayer, Version=1.0.0.0, Culture=neutral" />
<type
type="DataAccessLayer.IDbContext, DataAccessLayer, Version=1.0.0.0, Culture=neutral"
mapTo="DataAccessLayer.DbContext, DataAccessLayer, Version=1.0.0.0, Culture=neutral" />
</types>
</container>
</containers>
</unity>
以上配置在UI层web.config中。
指定在UI层web.config中创建哪个DAL实例是否违反图层分离概念?
由于所有图层都应该是独立的......如果在UI层中提到DAL,BAL依赖关系web.config会违反分离原则吗?
答案 0 :(得分:4)
你需要在某个地方引导你的容器。在某个Web应用程序中,某个地方通常是主要的Web项目。如果您使用的是n层架构,那么(希望)不会直接从您的UI中使用您的DAL类,而是从您的BL类中使用。
只需在web.config中引用您的DAL类,就不会违反分层体系结构。
您可能需要阅读concept of Composition Roots上的这篇文章以获得进一步的解释。