Castle Windsor: ¿Cómo inyecto todas las implementaciones de interfaz en un ctor?

He escrito una interfaz que es implementada por varias clases. Quiero escribir una clase de servicio que tendrá todas las implementaciones registradas inyectadas en su ctor.

La única solución que se me ocurre es llamar al Localizador de servicios dentro del ctor y pedirle que resuelva () todas las implementaciones.

Idealmente, me gustaría algo como esto -

<code>interface IVehicle
{
    void Start();
}

class Car : IVehicle
{
    public void Start()
    {
        Console.WriteLine("Car started.");
    }
}

class Truck : IVehicle
{
    public void Start()
    {
        Console.WriteLine("Truck started.");
    }
}

class Motorbike : IVehicle
{
    public void Start()
    {
        Console.WriteLine("Motorbike started.");
    }
}

class VehicleService
{
    // How do I inject all implementations of IVehicle?
    public VehicleService(IEnumerable<IVehicle> vehicles)
    {
        foreach (var vehicle in vehicles)
        {
            vehicle.Start();
        }
    }
}
</code>

EDITAR - Debo mencionar que estoy usando Castle Windsor.

Respuestas a la pregunta(4)

Su respuesta a la pregunta