0

名前付きの依存関係があります:

kernel.Bind<IManager>().To<Manager>().Named("Registration").WithConstructorArgument("settings", new Custom1SettingsA());
kernel.Bind<IManager>().To<Manager>().Named("Login").WithConstructorArgument("settings", new Custom1SettingsB());

ただし、コードは機能しません。実際、コードは最初の依存関係だけを取得しました。

kernel.Bind<IHandler>().To<Handler>().WithConstructorArgument("manager", ctx => ctx.Kernel.Get<IManager>("Registration"));

私は別の方法で依存関係を作成しましたが、それは非常に大きいです:

kernel.Bind<IHandler>().To<Handler>().
    WithConstructorArgument("manager", ctx =>
        ctx.Kernel.Get<IManager>(
            metadata => metadata.Name.Equals("Registration")));

これを達成する簡単な方法はありますか?

4

0 に答える 0