问题标签 [kodein]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2038 浏览

dependency-injection - 在 Kodein 依赖注入中,如何将 Kodein 本身的实例注入到实例中?

在 Kodein 中,我将模块导入到父模块中,有时这些类需要一个 Kodein 实例,以便以后可以自己进行注入。问题是这段代码:

以后哪里SomeService.module需要 Kodein 实例,但尚未创建 Kodein。稍后将其传递到模块中似乎是个坏主意。

在 Kodein 中3.x,我看到有kodein-conf一个具有全局实例的模块,但我想避免使用全局实例。

其他模块或类如何获取 Kodein 实例?

注意: 这个问题是作者有意编写和回答的(自我回答的问题),因此常见的 Kotlin/Kodein 主题的惯用答案出现在 SO 中。

0 投票
1 回答
2324 浏览

dependency-injection - 使用 Kodein 依赖注入,我不想到处传递 kodein 实例

使用 Kodein,我发现我必须传递 kodein 实例或将它们注入到模块和类中。但有时我的课程如此脱节,我希望他们能够发现“一个真正的 Kodein”。由于这是一个服务器端应用程序,而且我只有一个 Kodein 范围,所以应该很容易。我可以创建一个全局对象,例如:

但是当一些模块在不同的项目中重复使用时,这不起作用,我们不能轻易地共享这个实例。也许一个单独的模块只是为了保存全局会起作用,但是它需要是 avar并且我希望它是不可更改的。

Kodein 可以自己找到一个主要的、顶级的或全局的范围吗?

注意: 这个问题是作者有意编写和回答的(自我回答的问题),因此常见的 Kotlin/Kodein 主题的惯用答案出现在 SO 中。

0 投票
2 回答
1760 浏览

android - 如何将测试覆盖注入到默认依赖图中?

我想使用 Kodein 将模拟覆盖注入到我的 Android 仪器测试中。我不知道哪种方法是执行此操作的最佳方法。这是我的想法:

  • 我的应用程序使用KodeinAware应用程序类。服务的 Kodein 实例包含我的应用程序所需的所有依赖项。
  • 在我的测试中,我想为特定依赖项注入模拟覆盖,以测试应用程序在各种情况下的行为。
  • 每个测试的覆盖应该不同,并且应该在测试运行之前/期间注入。

在这种情况下,可配置的 Kodein 扩展是否明智,或者是否有更简单、更适合的方法(如果有,是哪种)?

0 投票
1 回答
475 浏览

dependency-injection - 如何使用 Kodein 依赖检索容器进行多重绑定?

我确实从 Dagger 2 迁移到了 Kodein,并希望能够很好地替代多重绑定功能。有吗?

0 投票
2 回答
1101 浏览

kotlin - Kodein 工厂绑定正在抛出 NotFoundException

我不知道这是一个错误还是我做错了。我在文档中没有看到任何内容表明应该以除此之外的任何方式调用 kodein 工厂绑定:

...但这会导致 NotFoundException

0 投票
1 回答
703 浏览

android - kodein,将数据注入到简单的类

我是 kotlin 和 kodein 开发的新手。我想将数据注入一个不扩展任何内容的简单类。

我有我MainActivity的扩展KodeinAppCompatActivity(),扩展的片段KodeinSupportFragment()从我的简单类中调用一个函数CallType。但是这个函数必须从另一个简单的类中改变一个布尔值ConnectivitySate。我不想使用静态值。

下面,我的代码:

主要活动 :

我的片段:

我的简单课程:

我的 ConnectivityState 类:

这是许多其他例子中的一个例子,因为在很多情况下,我都被这样阻止了。我尝试了很多东西,但我总是有错误:value not injected

非常感谢您的回复..

0 投票
1 回答
384 浏览

android - 在 Kodein 中将 lambda 作为参数传递

我正在使用 Kodein 在 Android 上进行依赖注入(当然是在 Kotlin 中),但我在一个方面苦苦挣扎:我似乎无法将 lambda 作为参数传递给工厂。它编译正确,但在运行时失败(我认为 Kodein 是为了防止这种情况)。

在我的 Application 类中,我执行以下绑定:

在我的活动中,我这样调用它:

我也试过这个不成功:

但是当我运行时,我总是遇到同样的问题:

com.github.salomonbrys.kodein.Kodein$NotFoundException: 没有为 bind() 找到工厂?{ ? }
... bind() 与工厂 { Function0 -> SimpleButtonListener }

我对 Kotlin 还是很陌生,所以我不确定我到底哪里出错了。我错过的语言中是否存在怪癖或习语,或者 Kodein 是否存在围绕 lambdas 作为参数的限制?

0 投票
1 回答
140 浏览

android - kodein - 注入的数据值不是数据值检索

在我的CallType课堂上,我将注入的数据connectivityState.callBackState设置为 true,在ConnectivitySte课堂上将其初始化为 false。但是在我的IncomingCallBroadcastReceiver课堂上,我的布尔数据callBackState不是truebut false

0 投票
0 回答
473 浏览

android - 如何用 Kodein 注入瞬态依赖工厂?

我想使用 ViewModelProvider Factory 从意图(即:俱乐部)注入自定义可打包数据。

在我的活动中,我想获得一个带有内置意图数据的视图模型。这里是我的活动:

任何想法?

0 投票
1 回答
192 浏览

kotlin - 是否可以在 kodein 中绑定类成员?

有2个班:

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

实现如下:

问题

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

科丁声明:

用例