名前付きの依存関係があります:
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")));
これを達成する簡単な方法はありますか?