【问题标题】:What does Bind<DateTime>().ToSelf() mean?Bind<DateTime>().ToSelf() 是什么意思?
【发布时间】:2018-04-21 12:05:27
【问题描述】:

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

Bind <DateTime>().ToSelf()

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

【问题讨论】:

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


    【解决方案1】:

    这毫无意义。从容器中获取 DateTime 会给你一个例外:

    Ninject.ActivationException: '错误激活 int 没有匹配 绑定可用,并且类型不可自绑定。激活 路径:

    2) 将依赖 int 注入到构造函数的参数 year 中 输入日期时间

    1) 日期时间请求

    理论上,解决方案中可以有另一个绑定,它绑定到某个常量:

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

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

    public DateTime(long ticks)
    

    但无论如何,这将是非常糟糕的做法,我看不出有任何这样做的理由。如果您的课程依赖于 datetime 等基本类型,而不是使用 ToConstructorWithConstructorArgument 方法。

    【讨论】:

      【解决方案2】:

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

      Bind<DateTime>().ToSelf() 
      

      等价于

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

      【讨论】:

      • 我的问题是关于 DateTime,而不是 ToSelf()
      猜你喜欢
      • 2017-07-09
      • 2014-03-10
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      相关资源
      最近更新 更多