如何按父类进行依赖

本文关键字:依赖 父类 何按 | 更新日期: 2023-09-27 18:24:50

我有一个类Handler。在构造函数中,我有一个Manager类,它取决于不同的设置。

kernel.Bind<IHandler>().To<Handler>().
                WithConstructorArgument("manager", 
                new Manager(kernel.Get<IDataAccessFactory>().CreateUnitOfWork(), new Custom1Settings()));

如何在Manager中创建Custom1Settings的注入,以及在Handler 中创建哪个注入

 class Handler
{
    Handler(IManager manager....)
    {
        ...
    }
}
class Manager
{
    Manager(IUnitOfWork unit, ISettings settings)
    {
        ...
    }
}

如何按父类进行依赖

Ninject会自动计算出依赖关系。这是它最有用的功能之一。

Custom1SettingsManager定义一个绑定,它会自动注入

所以

kernel.Bind<IManager>().To<Manager>();
kernel.Bind<ICustom1Settings>().To<Custom1Settings>();
kernel.Bind<IManager>().To<Manager>().Named("Registration").WithConstructorArgument("settings", new Custom1Settings());
kernel.Bind<IHandler>().To<Handler>().WithConstructorArgument("manager", ctx => ctx.Kernel.Get<IManager>("Registration"));