【问题标题】:Is it possible to bind a class member in kodein?是否可以在 kodein 中绑定类成员?
【发布时间】:2017-11-14 23:29:39
【问题描述】:

有2个类:

  • A - 基类
  • B - A 成员的类

实现如下:

class A {
   val b : B = B() 
}

class B

问题

是否可以为b 创建绑定以隐藏公共类中有关b 源的冗余信息?

Kodein 声明:

override val kodein by Kodein.lazy {

    bind<A>() with singleton { A() }
    bind<B>() with "a.b some impl???"

}

用例

class Usecase(kodein : Kodein){

    val b : B = kodein.instance()

}

【问题讨论】:

    标签: kotlin kodein


    【解决方案1】:

    很简单:

    bind<B>() with provider { instance<A>().b }
    

    provider 绑定是最简单的绑定:它每次都会调用提供的函数。 该函数本身在 Kodein 上下文中运行,因此使用了 instance 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-27
      • 2012-11-16
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多