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