Castle Windsor: Como injetar todas as implementações de interface em um ctor?
Eu escrevi uma interface que é implementada por várias classes. Eu quero escrever uma classe de serviço que terá todas as implementações registradas injetadas em seu ctor.
A única solução que posso pensar é chamar o Service Locator dentro do ctor e pedir a Resolve () todas as implementações.
Idealmente, eu gostaria de algo assim -
<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 - Eu devo mencionar que estou usando Castle Windsor.