9

我可以找到的示例使用两层架构,其中控制器直接使用数据访问层中的存储库类。见这里这里

如果您有使用这些组件的服务或业务逻辑层,您会在哪里注册数据访问层的组件?理想情况下,不应从用户界面层引用数据访问层,对吗?所以 Application_Start 不是正确的地方。

有什么更好的方法?

谢谢!

4

1 回答 1

7

必须知道您要使用哪些实现。通常有 3 种方法可以完成此操作:

  1. 在编译时这是 Autofac 使用的
  2. 在运行时从 Castle Windsor 可以执行的预定义配置文件
  3. 在运行时使用动态配置

使用 Autofac,您有几个选择

  1. 在 Application_Start 中将所有内容连接在一起
  2. 将责任交给另一个实现工厂模式并注册所需组件的组件。

对于#2,我将实现类似于 IContainer 接口的东西,以便您的 IoC 框架与您的系统松散耦合。然后让您的数据访问实现使用该接口注册所需的组件。

于 2008-11-27T19:03:40.243 回答