Using Windsor 3.0+ xml configuration, how can I register multiple types for a service?

103 Views Asked by At

I know I can register a single type for a component like so:

<component 
    id="myservice"
    service="MyServices.IService"
    type="MyServices.Impl.Service1" />

Imagine a scenario where I have a class that takes an array of IService like so:

public class MyClass
{
    public MyClass(IService[] services) { ... }
}

How do I register, for example, Service1, Service2 and Service3 for the IService component using XML configuration?

1

There are 1 best solutions below

0
On BEST ANSWER
<component 
    id="myservice1"
    service="MyServices.IService"
    type="MyServices.Impl.Service1" />
<component 
    id="myservice2"
    service="MyServices.IService"
    type="MyServices.Impl.Service2" />
<component 
    id="myservice3"
    service="MyServices.IService"
    type="MyServices.Impl.Service3" />

Or if you want to be more compact:

<component service="IService" type="Service1" />
<component service="IService" type="Service2" />
<component service="IService" type="Service3" />