如何配置Ninject以注入NodaTime IClock

时间:2015-11-11 06:27:34

标签: c# ninject nodatime

在我的NinjectConfigurator中我有

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

我也试过

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

但是我收到了这个错误:

  

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

     

激活路径:    3)将依赖IClock注入SystemManager类型构造函数的参数时钟    2)将依赖ISystemManager注入到AccountController类型的构造函数的参数systemManager中    1)对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;
}

我找不到任何可以帮助我的事情。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:6)

我有一段时间没有使用过NInject,但我相信您希望使用ToConstant()绑定到SystemClock的实例:

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