NinjectC#-在运行时从读取配置中获取具体类型

本文关键字:获取 类型 配置 运行时 读取 NinjectC#- | 更新日期: 2023-09-27 18:25:07

我想根据配置值选择一个特定的绑定,为了参数起见,假设我有两个具体的类,分别称为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");

我可以在不将内核传递给工厂的情况下绑定它吗?

如果有人有任何建议的话,我也有能力重构工作流程。

NinjectC#-在运行时从读取配置中获取具体类型

直接注入配置的操作并对其进行条件配置:

Bind<IAction>().To<Action1>().When(ctx => IsAction1Configured());
Bind<IAction>().To<Action2>().When(ctx => IsAction2Configured());