1

这是一个新手问题,我正在使用 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层web.config中提到了DAL,BAL依赖关系会不会违反分离原则?

4

1 回答 1

4

您需要在某处引导您的容器。在某个地方通常是主要网络项目的网络应用程序中。如果您使用的是 n 层架构,那么您(希望)不是直接从 UI 中使用 DAL 类,而是从 BL 类中使用。

简单地在 web.config 中引用您的 DAL 类并不违反分层架构。

您可能想阅读这篇关于Composition Roots 概念的文章以获得进一步的解释。

于 2012-08-15T07:53:30.947 回答