【发布时间】:2013-10-22 19:44:10
【问题描述】:
在过去的几年里,我一直是温莎的忠实用户。在使用 Fluent Registration API 之前,我会在 Xml 注册和大量 AddComponent() 代码之间切换。很长一段时间以来,我们一直在愉快地使用 Fluent Registration API 和 Installers。我从各种文章中得到了这样的印象:
http://docs.castleproject.org/Windsor.XML-Registration-Reference.ashx
Xml 注册方法已经失宠,如果它在不久的将来被标记为弃用,我也不会感到惊讶。
现在,对于我的问题:Fluent Registration API 和安装程序在自动装配场景(即,当我希望 Windsor 弄清楚如何构建我的对象图时)流畅地工作。自动布线是绝大多数 IoC 用例,但是当自动布线不可能时呢?换句话说,我有多个服务实现,我需要告诉 Windsor 如何构造我的对象图的各个部分。我已经用 Xml 注册方法做了很多次了,但是这些天有更首选的方法吗?我对采用 Xml 注册方法犹豫不决,因为它的未来似乎不确定,但我不知道如何通过 Windsor 实现这一目标。
我的用例是:
- 系统需要能够在 QA 测试中交换实现(即 我们要测试的信用检查和欺诈检测处理 不依赖信用局 API)
- 我们的提供者模式 我们需要有条件地打开和关闭不同的系统 在部署时实现。
这一切似乎都非常适合 IoC,我们已准备好所有构建模块,但我想确保我在 Windsor 中采用了最适合未来的方法。
更新: 虽然我喜欢功能切换方法,但我最近发现了一个在这方面非常有用的 Windsor 功能 - Fallback Components。我将这里的编辑留给以后可能偶然发现的任何人。
【问题讨论】:
-
你能贴出你想模仿的xml配置吗?
标签: inversion-of-control castle-windsor