Castle Windsor注册组件

时间:2013-12-06 18:51:42

标签: castle-windsor

我是IoC的新手,尤其是温莎城堡。 有人可以向我解释part1和part2之间的区别吗?我的理解是part1是你注册组件的地方,part2是它创建对象的工厂。我不确定在这种情况下组件的含义。我阅读了一些文档http://docs.castleproject.org/,但似乎无法找到详细解释这些内容的地方。

container.Register
(
//part1
AllTypes.FromAssemblyContaining<AnotherClass>()
.BasedOn<ISomething>()
.WithService.DefaultInterfaces()
.WithService.Self(),
//part2
Component.For<ISomething>().ImplementedBy<Something>()
);

1 个答案:

答案 0 :(得分:1)

结果相同:在容器中注册组件。

第一个approch允许注册符合一组条件的多个组件。在您的情况下,您正在注册实现包含ISomenthing的组合中包含的AnotherClass的所有类,然后使用With ...您正在通过DefaultInterfaces使组件可解析(阅读维基以获取详细信息)或通过类型本身。

第二种方法更直接......您只注册一个只能通过其ISomenthing接口解析的组件