问题标签 [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.
dependency-injection - 在 Kodein 依赖注入中,如何将 Kodein 本身的实例注入到实例中?
在 Kodein 中,我将模块导入到父模块中,有时这些类需要一个 Kodein 实例,以便以后可以自己进行注入。问题是这段代码:
以后哪里SomeService.module
需要 Kodein 实例,但尚未创建 Kodein。稍后将其传递到模块中似乎是个坏主意。
在 Kodein 中3.x
,我看到有kodein-conf
一个具有全局实例的模块,但我想避免使用全局实例。
其他模块或类如何获取 Kodein 实例?
注意: 这个问题是作者有意编写和回答的(自我回答的问题),因此常见的 Kotlin/Kodein 主题的惯用答案出现在 SO 中。
dependency-injection - 使用 Kodein 依赖注入,我不想到处传递 kodein 实例
使用 Kodein,我发现我必须传递 kodein 实例或将它们注入到模块和类中。但有时我的课程如此脱节,我希望他们能够发现“一个真正的 Kodein”。由于这是一个服务器端应用程序,而且我只有一个 Kodein 范围,所以应该很容易。我可以创建一个全局对象,例如:
但是当一些模块在不同的项目中重复使用时,这不起作用,我们不能轻易地共享这个实例。也许一个单独的模块只是为了保存全局会起作用,但是它需要是 avar
并且我希望它是不可更改的。
Kodein 可以自己找到一个主要的、顶级的或全局的范围吗?
注意: 这个问题是作者有意编写和回答的(自我回答的问题),因此常见的 Kotlin/Kodein 主题的惯用答案出现在 SO 中。
android - 如何将测试覆盖注入到默认依赖图中?
我想使用 Kodein 将模拟覆盖注入到我的 Android 仪器测试中。我不知道哪种方法是执行此操作的最佳方法。这是我的想法:
- 我的应用程序使用
KodeinAware
应用程序类。服务的 Kodein 实例包含我的应用程序所需的所有依赖项。 - 在我的测试中,我想为特定依赖项注入模拟覆盖,以测试应用程序在各种情况下的行为。
- 每个测试的覆盖应该不同,并且应该在测试运行之前/期间注入。
在这种情况下,可配置的 Kodein 扩展是否明智,或者是否有更简单、更适合的方法(如果有,是哪种)?
dependency-injection - 如何使用 Kodein 依赖检索容器进行多重绑定?
我确实从 Dagger 2 迁移到了 Kodein,并希望能够很好地替代多重绑定功能。有吗?
kotlin - Kodein 工厂绑定正在抛出 NotFoundException
我不知道这是一个错误还是我做错了。我在文档中没有看到任何内容表明应该以除此之外的任何方式调用 kodein 工厂绑定:
...但这会导致 NotFoundException
android - kodein,将数据注入到简单的类
我是 kotlin 和 kodein 开发的新手。我想将数据注入一个不扩展任何内容的简单类。
我有我MainActivity
的扩展KodeinAppCompatActivity()
,扩展的片段KodeinSupportFragment()
从我的简单类中调用一个函数CallType
。但是这个函数必须从另一个简单的类中改变一个布尔值ConnectivitySate
。我不想使用静态值。
下面,我的代码:
主要活动 :
我的片段:
我的简单课程:
我的 ConnectivityState 类:
这是许多其他例子中的一个例子,因为在很多情况下,我都被这样阻止了。我尝试了很多东西,但我总是有错误:value not injected
非常感谢您的回复..
android - 在 Kodein 中将 lambda 作为参数传递
我正在使用 Kodein 在 Android 上进行依赖注入(当然是在 Kotlin 中),但我在一个方面苦苦挣扎:我似乎无法将 lambda 作为参数传递给工厂。它编译正确,但在运行时失败(我认为 Kodein 是为了防止这种情况)。
在我的 Application 类中,我执行以下绑定:
在我的活动中,我这样调用它:
我也试过这个不成功:
但是当我运行时,我总是遇到同样的问题:
com.github.salomonbrys.kodein.Kodein$NotFoundException: 没有为 bind() 找到工厂?{ ? }
... bind() 与工厂 { Function0 -> SimpleButtonListener }
我对 Kotlin 还是很陌生,所以我不确定我到底哪里出错了。我错过的语言中是否存在怪癖或习语,或者 Kodein 是否存在围绕 lambdas 作为参数的限制?
android - kodein - 注入的数据值不是数据值检索
在我的CallType
课堂上,我将注入的数据connectivityState.callBackState
设置为 true,在ConnectivitySte
课堂上将其初始化为 false。但是在我的IncomingCallBroadcastReceiver
课堂上,我的布尔数据callBackState
不是true
but false
。
android - 如何用 Kodein 注入瞬态依赖工厂?
我想使用 ViewModelProvider Factory 从意图(即:俱乐部)注入自定义可打包数据。
在我的活动中,我想获得一个带有内置意图数据的视图模型。这里是我的活动:
任何想法?
kotlin - 是否可以在 kodein 中绑定类成员?
有2个班:
- A - 基类
- B - A 成员类别
实现如下:
问题
是否可以创建一个绑定来隐藏公共类中b
有关源的冗余信息?b
科丁声明:
用例