Castle Windsor: Wie füge ich alle Schnittstellenimplementierungen in einen ctor ein?

Ich habe eine Schnittstelle geschrieben, die von mehreren Klassen implementiert wird. Ich möchte eine Service-Klasse schreiben, in deren ctor alle registrierten Implementierungen eingefügt werden.

Die einzige Lösung, die ich mir vorstellen kann, ist, den Service Locator innerhalb des ctor aufzurufen und ihn zu bitten, alle Implementierungen aufzulösen ().

Im Idealfall würde ich so etwas mögen -

<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>

BEARBEITEN - Ich sollte erwähnen, dass ich Castle Windsor benutze.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage