【发布时间】:2011-11-06 12:24:50
【问题描述】:
我最近一直在研究 Ioc 容器和 AOP,我对这些概念感到非常惊讶。然而,我正在努力决定如何以及在何处实施容器。
以下文章建议在“应用程序入口点”中实现容器:
- Best Practices for IOC Container
- IOC across visual studio projects?
- Not understanding where to create IoC Containers in system architecture
现在 - 我的思想实验应用程序将包含多个 Visual Studio 项目(一个用于数据访问,winforms 应用程序)。假设我想使用 AOP 来使用 Log4net 进行日志记录,所以我在 Ioc 容器中设置了 log4net。 所以 WinForms 应用程序在入口点,这就是 Ioc 容器应该去的地方。
问题是:如果我想在我的数据访问项目/层中记录内容,我应该添加一个 引用我的 winforms 应用程序,从那里获取 ioc 容器,从中获取 log4net 实例并将其用于日志记录?
这意味着我的数据层依赖于 winforms 应用程序,这是不对的。我如何将容器放在解决方案中类似于“通用”项目。这样,所有相关项目(数据访问/winformsa 等)都可以访问容器。 去这里的正确方式是什么?
【问题讨论】:
标签: visual-studio architecture inversion-of-control ioc-container enterprise