是否可以在kodein中绑定一个类成员?

时间:2017-11-14 23:29:39

标签: kotlin kodein

有两个班级:

  • 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???"

}

USECASE

class Usecase(kodein : Kodein){

    val b : B = kodein.instance()

}

1 个答案:

答案 0 :(得分:2)

很简单:

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

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