我希望基于配置值选择一个特定的绑定,为了参数起见,假设我有两个名为Action1和Action2的具体类。目前,我正在将Ninject内核传递到一个工厂中,并在此基础上返回绑定类型。
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");我是否可以在不需要将内核传递给工厂的情况下绑定它呢?
如果有人有任何建议的话,我也有能力重构工作流。
发布于 2013-07-28 03:36:19
直接注入已配置的操作并进行条件配置:
Bind<IAction>().To<Action1>().When(ctx => IsAction1Configured());
Bind<IAction>().To<Action2>().When(ctx => IsAction2Configured());https://stackoverflow.com/questions/17901338
复制相似问题