IoC (Ninject )и Factory

Если у меня есть следующий код:

public class RobotNavigationService : IRobotNavigationService {
  public RobotNavigationService(IRobotFactory robotFactory) {
    //...
  }
}
public class RobotFactory : IRobotFactory {
  public IRobot Create(string nameOfRobot) {
    if (name == "Maximilian") {
      return new KillerRobot(); 
    } else {
      return new StandardRobot();
    }
  }
}

Мой вопрос в том, как правильно сделать инверсию управления здесь? Я не хочу добавлять бетоны KillerRobot и StandardRobot в класс Factory, не так ли? И я не хочу вводить их через IoC.Get<> верно? до н.э., это было бы расположением службы, а не истинным IoC, верно? Есть ли лучший способ решить проблему переключения бетона во время выполнения ?

22
задан BuddyJoe 23 April 2012 в 18:37
поделиться