Я хочу, чтобы Ninject разрешал экземпляр T на основе определенного значения ввода enum.Ninject factory create T основано на перечислении
Я читал о заводских расширениях Ninject, но я не смог найти ни одного примера, когда фабрика решила определенный класс на основе перечисления.
Каждый класс происходит от базового класса, и этот производный класс имеет несколько различных интерфейсов, которые Ninject также должен решить.
Например, это то, как должен выглядеть интерфейс:
public interface IProcessFactory
{
T Create<T>(ProcessIndex processIndex) where T : BaseProcess;
}
Как это может быть достигнуто?
Лучше использовать kernel.Bind() .ToFactory (() => новый MyCustomInstanceProvider()); Это позволит вам определить, какой поставщик экземпляра следует использовать для конкретной фабричной привязки. –
treze
@treze благодарит, что это хороший момент, я включу его в свой пост. Однако мы сделали несколько дополнительных функций для InstanceProvider, которые мы использовали во многих местах.В этом случае я думаю, что на самом деле лучше предоставить его «глобально» вместо конкретного для привязки. – BatteryBackupUnit
Если вы хотите, чтобы это был поставщик экземпляра по умолчанию, он, конечно же, имеет смысл – treze