0

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

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

我如何为Custom1SettingsinManager和 which in创建注入Handler

 class Handler
{
    Handler(IManager manager....)
    {
        ...
    }
}

class Manager
{
    Manager(IUnitOfWork unit, ISettings settings)
    {
        ...
    }
}
4

2 回答 2

0

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

Custom1Settings为and定义一个绑定Manager,它会自动注入它。

所以

kernel.Bind<IManager>().To<Manager>();
kernel.Bind<ICustom1Settings>().To<Custom1Settings>();
于 2013-07-25T14:18:39.173 回答
0
kernel.Bind<IManager>().To<Manager>().Named("Registration").WithConstructorArgument("settings", new Custom1Settings());

kernel.Bind<IHandler>().To<Handler>().WithConstructorArgument("manager", ctx => ctx.Kernel.Get<IManager>("Registration"));
于 2013-07-25T14:35:47.560 回答