作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在阅读 Onion 架构,我有一个我认为是关于如何为 DI 容器安排程序集依赖项以便能够连接所有内容的简单问题。
假设一个非常简单的解决方案具有以下结构:
UI => BL <= DAL
所以 UI 和 DAL 引用了 BL,但彼此不知道。
还假设 BL 有一个名为 IDatabaseService 的接口(interface),它由 DALDatabaseService 在 DAL 中实现。
容器将(大概)在 UI 的入口点进行配置。由于 UI 不知道 DAL,它如何注册 IDatabaseService 以解析为 DALDatabaseService?
最佳答案
大多数情况下,这是通过让容器知道 DAL(通过配置)并将 DAL 的程序集粘贴在与 UI 相同的目录或其他众所周知的位置(GAC 等)中来完成的。在 Spring.NET 中,您将在 spring 配置文件中添加 DAL 的类型。在 CaSTLe Windsor 中,您可以在每个具有要在 IoC 容器中注册的类型的 DLL 中包含一个实现 IWindsorInstaller 的类,并在 UI 中告诉容器去查找特定目录中的所有组件。
关于c# - 洋葱架构和在 DI 容器中注册依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787355/
我无法理解六边形(端口适配器)架构中依赖的含义。 Here他们有漂亮的照片。我没有看到的是与 n 层结构有什么区别(实现)。 在 onion/hex 架构中,inner 层应该独立于outer 层,但
我是一名优秀的程序员,十分优秀!