我是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>()
);
答案 0 :(得分:1)
结果相同:在容器中注册组件。
第一个approch允许注册符合一组条件的多个组件。在您的情况下,您正在注册实现包含ISomenthing
的组合中包含的AnotherClass
的所有类,然后使用With
...您正在通过DefaultInterfaces
使组件可解析(阅读维基以获取详细信息)或通过类型本身。
第二种方法更直接......您只注册一个只能通过其ISomenthing
接口解析的组件