IoC / DI容器初始化

时间:2013-07-16 10:01:30

标签: dependency-injection castle-windsor ioc-container

我从DI和IoC开始,所以我的问题可能不是最好定义的。

我阅读了很多例子,并阅读了这本书Dependency Injection in .NET @MarkSeemann现在。

但我可能错过了一些观点。我没有带任何特殊的框架示例来解决问题。

问题1:

让我们说,我有WinForms应用程序

Gui1 - > (从配置获取服务ip,传递给bl)

Gui2 - > (从用户获取服务ip,传递给bl)

- >       业务层 - >              通信DALayer(接收服务IP地址) - > ... - > WCF服务......

每个组件 - 都是单独的.Net项目(GUI1,GUI2,BL,DAL,...)。

我想使用任何DI容器(例如Unity,Castle,...)。

在这种情况下,我需要在启动应用程序时初始化容器一次 - 它表示来自 GUI1 文件 program.cs 和来自 GUI2 文件 program.cs

但是 - 这是否意味着我应该将 BL和DAL 的引用添加到GUI1和GUI2项目中? 我的意思是,为了能够注册BL实例 - 我应该将它的类型提供给容器。要做到这一点 - 我应该能够从program.cs“看到”它的类型。

同样适用于DAL - 我希望我的BL从IoC容器中获取dal(构造函数注入?)。

向GUI添加BL引用是可以的,但是将DAL引用(可能还有其他助手......)添加到GUI项目是不行的

我读到了Windsor的安装程序 - 但是同样的问题 - 我可以为DAL准备安装程序,为BL安装程序 - 但是所有的应该都可以在主安装期间从GUI项目执行。

我不知道,我可以将类型指定为字符串,例如“MyNamespace.MyClass”,但我认为这不是最佳解决方案。

我在这里缺少什么?

谢谢!

0 个答案:

没有答案