如何配置Ninject以注入NodaTime IClock
本文关键字:注入 NodaTime IClock Ninject 何配置 配置 | 更新日期: 2023-09-27 18:21:38
在我的NinjectConfigurator中,我有
container.Bind<IClock>().To<SystemClock>();
我也试过
container.Bind<IClock>().To<SystemClock>().InSingletonScope();
但我得到了这个错误:
使用从
IClock
到SystemClock
的绑定激活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了,但我相信你想使用ToConstant()
绑定到SystemClock
:的实例
container.Bind<IClock>().ToConstant(SystemClock.Instance);