我在过去的几年里一直是温莎的用户。在Fluent注册API之前,我会在Xml注册和大量的AddComponent()代码之间切换。我们一直很高兴地使用Fluent注册API和安装程序很长一段时间。我已经得到了来自不同著作的印象是这样的:温莎城堡和动态布线
http://docs.castleproject.org/Windsor.XML-Registration-Reference.ashx
该XML注册方法已在不远的失宠,它不会让我感到吃惊,如果它被标记弃用在某些点未来。
现在,对于我的问题:Fluent注册API和安装程序适用于自动布线场景(即,当我想让Windsor知道如何构建我的对象图时)。自动布线是绝大多数IoC用例,但是当自动布线不可行时呢?换句话说,我有一个服务的多个实现,我需要告诉温莎如何构建我的对象图的一部分。我已经使用Xml注册方法做了很多次,但是现在还有更受欢迎的方法吗?由于它的未来似乎不确定,我对使用Xml注册方法犹豫不决,但我不知道如何用Windsor来实现这一点。
我的使用情况是:
- 系统需要能够在QA测试交换实现(即 信贷检查和欺诈检测处理,我们要测试 不会对信贷局API的依赖)
- 我们的 系统中的供应商模式,我们需要在部署时有条件地打开和关闭不同的 实现。
这一切似乎都非常适合IoC,我们拥有所有构建基块,但要确保我正在采取温莎最适合未来的方法。
UPDATE: 虽然我喜欢的功能切换方法,我最近发现一个温莎特点,就是在这方面非常有用 - Fallback Components。我将把这个编辑留给任何可能在后来偶然发现的人。
你可以发布你试图模仿的xml配置吗? – Maciej