I\'ve written an interface which is implemented by multiple classes. I want to write a Service class which will have all the registered implementations injected into its cto
The answers here are all correct but I just wanted to add a little extra wrinkle to it: You have to add the sub-resolver BEFORE you register your components.
This will work:
container = new WindsorContainer();
container.Kernel.Resolver.AddSubResolver(new CollectionResolver(container.Kernel));
container.Register(
Component.For().ImplementedBy(),
Component.For().ImplementedBy(),
Component.For().ImplementedBy()
);
This will NOT work
container = new WindsorContainer();
container.Register(
Component.For().ImplementedBy(),
Component.For().ImplementedBy(),
Component.For().ImplementedBy()
);
container.Kernel.Resolver.AddSubResolver(new CollectionResolver(container.Kernel));