Zacząłem czytać o kontenerach na przykłądzie Ninject i mam pytanie. Co jeśli mamy kilka klas implementujących dany interfejs? W konfiguracji podajemy jedną zależność, jak sobie poradzić gdy mamy tego więcej?
public interface Animal
{
void Noise();
}
public class Dog : IAnimal
{
//implementacja
}
public class Cat: IAnimal
{
//implementacja
}
public class Duck: IAnimal
{
//implementacja
}
w konfiguracji kontenera mam np
kernel.Bind<IAnimal>. To<Dog>();
no i teraz co w przypadku jeśli mam w aplikacji strategie, że czasem potrzebuje klasy Dog, czasem Cat a czasem Duck, kontener już tego nie obsłuży. Co się robi w takich sytuacjach?