Я хочу выбрать конкретную привязку, основанную на значении конфигурации, для аргументов, скажем, у меня есть два конкретных класса, называемые Action1 и Action2. В настоящее время я перехожу в ядро Ninject к фабрике и возвращают связанный тип, основанный на этом.Ninject C# - получить конкретный тип во время выполнения из конфигурации чтения
public class ActionFactory: IActionFactory
{
public IAction GetAction(IKernel kernel, string actionName)
{
return kernel.Get<IAction>(actionName);
}
}
Я связывание действия в модуле Ninject как так:
Bind<IAction>().To<Action1>().Named("Action1");
Bind<IAction>().To<Action2>().Named("Action2");
Будет ли это возможно для меня, чтобы связать это без необходимости проходить ядро на завод?
У меня также есть возможность реорганизовать рабочий процесс, если у кого есть предложения.
Здравствуйте Remo, спасибо за ответ. Я не знаю, является ли это работоспособным (или даже даже возможностью с Ninject) для меня, поскольку конфигурация является сложным типом, полученным в службе, и привязки выполняются при инициализации службы без какого-либо знания сложного типа конфигурации, извлекается в службе далее вниз по стеку. Я не думаю, что то, что я хочу, возможно, мне может потребоваться переосмыслить мой поток. –