我有一个命名的依赖项:
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")));
有没有更简单的方法来实现这一点?