Hey Hammett,
I didn't realize I wasn't receiving emails for the users list. I know am and will respond to them accordingly.
As for the question, any arrays, lists or dictionaries are supported using custom depenedencies unless they are service overrides.
I updated the service overrides support for the fluent registration to handles arrays/lists of service overrides. To handle complex scenarios like dictionaries, I also introduces a Parameters specification. If the community really needs first class support for dictionaries with service overrides. I will add it.
Service Overrides for typed arrays example
kernel.Register(
Component.ForService<ICommon>()
.Named("common1")
.ImplementedBy<CommonImpl1>(),
Component.ForService<ICommon>()
.Named("common2")
.ImplementedBy<CommonImpl2>(),
Component.ForService<ClassWithArrayConstructor>()
.ServiceOverrides(
ServiceOverride.ForKey("first").Eq("common2"),
ServiceOverride.ForKey("services").Eq("common1", "common2")
)
);
Service Overrides for untyped lists
kernel.Register(
Component.ForService<ICommon>()
.Named("common1")
.ImplementedBy<CommonImpl1>(),
Component.ForService<ICommon>()
.Named("common2")
.ImplementedBy<CommonImpl2>(),
Component.ForService<ClassWithListConstructor>()
.ServiceOverrides(
ServiceOverride.ForKey("services").Eq<ICommon>("common1", "common2")
)
);
Here is the link to the units tests to demonstrate them all
http://svn.castleproject.org:8080/svn/castle/trunk/InversionOfControl/Castle.MicroKernel.Tests/Registration/ComponentRegistrationTestCase.cs
craig