如何配置Ninject以注入NodaTime IClock

本文关键字:注入 NodaTime IClock Ninject 何配置 配置 | 更新日期: 2023-09-27 18:21:38

在我的NinjectConfigurator中,我有

container.Bind<IClock>().To<SystemClock>(); 

我也试过

container.Bind<IClock>().To<SystemClock>().InSingletonScope();

但我得到了这个错误:

使用从IClockSystemClock的绑定激活IClock时出错没有构造函数可用于创建实现类型的实例。

激活路径:3) 将依赖IClock注入SystemManager类型构造函数的参数时钟2) 将依赖项ISystemManager注入类型为AccountController的构造函数的参数systemManager1) 请求AccountController

建议:1) 请确保实现类型具有公共构造函数。2) 如果您已经实现了Singleton模式,请改用InSingletonScope()的绑定。

这是我的注入类,和我项目中所有其他使用IoC的工作类一样:

private readonly IDateTime _dateTime;
private readonly IClock _clock;
public SystemManager(IDateTime dateTime, IClock clock)
{
    this._dateTime = dateTime;
    this._clock = clock;
}

在这件事上我找不到任何帮助。非常感谢您的帮助。

如何配置Ninject以注入NodaTime IClock

我已经有一段时间没有使用NInject了,但我相信你想使用ToConstant()绑定到SystemClock:的实例

container.Bind<IClock>().ToConstant(SystemClock.Instance);