1

有没有办法在 Android Kotlin 中使用 DI 框架在扩展函数或全局函数中注入对象?

我在很多地方都使用了这个功能。所以我不想每次都传递一个参数。

DI 框架可以是 Koin、Hilt、Dagger2 或其他中的任何一个。

像这样的东西:

fun Context.showSomething() {
 val myObject = inject()
 showToast(myObject.text)
}
4

2 回答 2

1

Inject您可以将其作为参数传递,而不是考虑使用:

fun Context.showSomething(myObject: String) {
 showToast(myObject.text)
}
于 2021-08-18T14:16:20.463 回答
0

使用 Koin,您可以这样做,

fun Context.showSomething() {
  val myObject = GlobalContext.get().get()
  showToast(myObject.text)
}

但完全不推荐使用它。

于 2021-08-18T14:19:55.527 回答