1

引数のために、構成値に基づいて特定のバインドを選択したいと思います。たとえば、Action1 と Action2 という 2 つの具象クラスがあるとします。現在、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");

カーネルをファクトリーに渡すことなく、これをバインドすることは可能でしょうか?

提案があれば、ワークフローをリファクタリングすることもできます。

4

1 に答える 1

1

構成されたアクションを直接注入し、条件付きで構成します。

Bind<IAction>().To<Action1>().When(ctx => IsAction1Configured());
Bind<IAction>().To<Action2>().When(ctx => IsAction2Configured());
于 2013-07-28T03:36:19.467 に答える