У меня есть интерфейс IBreakfastProvider, который имеет несколько реализаций. В настоящее время мой код решает, какой из них использовать на основе id. Он использует заводской метод, например:Методы фабрики в Ninject C#
public IBreakfastProvider GetBreakfastProvider(int id)
{
switch (id)
{
case 1:
return new CornFlakeProvider(new SomeDependency());
case 2:
return new MuesliProvider(new SomeOtherDependency());
case 3:
return new ToastProvider();
default:
throw new ApplicationException("Unknown provider id.");
}
}
Каждая реализация поставщика IBreakfast может иметь свои собственные зависимости. Как можно заменить этот метод, чтобы использовать Ninject для разработки, какую реализацию использовать на основе этого целочисленного id?
и вместо того, чтобы делать ' resolution.Get (id); 'вы также можете использовать [эту функцию Ninject.Extensions.Factory] (https://github.com/ninject/Ninject.Extensions.Factory/wiki/Factory-interface%3A-Referencing-Named -Bindings) –
BatteryBackupUnit