在我的NinjectConfigurator中我有
container.Bind<IClock>().To<SystemClock>();
我也试过
container.Bind<IClock>().To<SystemClock>().InSingletonScope();
但是我收到了这个错误:
使用从
IClock
到IClock
的绑定来激活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;
}
我找不到任何可以帮助我的事情。非常感谢任何帮助。
答案 0 :(得分:6)
我有一段时间没有使用过NInject,但我相信您希望使用ToConstant()
绑定到SystemClock
的实例:
container.Bind<IClock>().ToConstant(SystemClock.Instance);