To once again answer my own question (sorry ;-):
Turned out that the solution is quite simple - once you know. Adding an ArrayResolver as a subresolver not only makes this working:
static void Main(string[] args)
{
IWindsorContainer container = new WindsorContainer();
container.Kernel.Resolver.AddSubResolver(new ArrayResolver(container.Kernel));
container.Install(Castle.Windsor.Installer.Configuration.FromAppConfig());
var consumer = container.Resolve<Consumer>();
}
But even simplyfies configuration, as you don't have to setup the instances:
<configuration>
<configSections>
<section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
</configSections>
<castle>
<components>
<component id="Foo1" service="Test.IFoo, Test" type="Test.Foo1, Test" />
<component id="Foo2" service="Test.IFoo, Test" type="Test.Foo2, Test" />
<component id="Consumer" service="Test.Consumer, Test"/>
</components>
</castle>
</configuration>
As always it turns out that Castle Windsor is great, but documentation is not and the many different versions you'll find examples for in the web won't make it easier...