什么Bind <datetime>()。ToSelf()是什么意思?

时间:2018-04-21 12:05:27

标签: c# .net dependency-injection inversion-of-control ninject

在一个开源程序的NinjectModule中,我找到了这一行:

Bind <DateTime>().ToSelf()

它的目的是什么?为什么要将DateTime放在容器中?作者想要达到什么目的?

2 个答案:

答案 0 :(得分:1)

这没有任何意义。从容器中获取DateTime会给您一个例外:

  

Ninject.ActivationException:&#39;错误激活int无匹配   绑定可用,并且类型不可自绑定。激活   路径:

     

2)将依赖关系int注入到构造函数的参数年中   输入DateTime

     

1)请求DateTime

理论上,解决方案中可能存在另一种绑定,其长期与某种常数结合:

Bind<long>().ToConstant(1L);

这样你就可以根据带有刻度数的构造函数从容器中获取日期时间:

public DateTime(long ticks)

但无论如何,这将是非常糟糕的做法,我看不出有任何理由这样做。如果您的课程取决于日期时间等基本类型,请使用ToConstructorWithConstructorArgument方法。

答案 1 :(得分:0)

重复:Ninject: What does it mean to bind something to itself?

Bind<DateTime>().ToSelf() 

相当于

Bind<DateTime>().To<DateTime>()