问题标签 [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 获取 A、B、C 而不是 D 的实例?
我得到的最接近的是:
设置绑定没有什么帮助,因为我无法将单个实例绑定为 set-enabled-type 并且我希望将其绑定为:
原因Exception in thread "main" java.lang.IllegalStateException: No set binding to bind<Set<out A>>() with ? { ? }
这解决了这个问题,但很丑陋:
android - 如何将依赖项覆盖到真正的kodein应用程序依赖图中?
我正在尝试进行一些测试,我需要通过在 KODEIN 上覆盖它来替换真正的依赖项,但它不起作用,我不知道我还能做什么。
这是我的依赖关系图(我省略了其他依赖关系):
这是我的应用程序类:
这是我为覆盖依赖项所做的工作:
我仍然在控制台日志中看到“RetrieveContacts REAL”而不是“RetrieveContacts FAKE”
dependency-injection - 有没有办法在 kotlin kodein 中创建一个可以产生 null 的工厂绑定?
有没有办法创建一个可以产生 null 的工厂绑定?
例如,
不幸的是,bind<String?>
给出了错误。
android - Kodein 使用泛型绑定依赖
我尝试通过以下方式绑定依赖项
但我收到以下错误
java.lang.IllegalArgumentException: bind<LocalDataSource<T>>() uses a type variable named T, therefore, the bound value can never be retrieved.
我想导入模块并获得所需的依赖项,而无需每次都重复相同的绑定。
有没有办法做到这一点?
kotlin - 使用 Kodein 将对象实例传递给构造函数
我是 Kotlin 和 Kodein 的新手。我正在尝试使用 Java 库,并且需要将单例传递给我的一个构造函数。我不知道如何获得一个实际的实例。由于我需要将实例传递给构造函数,我相信我需要使用 DKodein,所以不使用延迟加载?
有没有简单的方法来实现这一点?还是我以错误的方式解决这个问题?
谢谢。
kotlin - 关闭/关闭 Kodein 上下文
假设在我的应用程序中,我维护了一些 Kodein 上下文,并且 Kodein 上下文中有一些共享资源,当不再需要它所属的上下文时,我想关闭这些资源。
下面是问题的简单说明:
理想情况下,应该实现几个属性:
- 只检索已经初始化的 Closeable 实例并关闭它们
SomeService
并且SomeOtherService
不应该负责关闭SomeConnectionPool
,因为他们没有创建实例。他们也不知道该池是否仍在被其他东西使用。
我还考虑只从 kodein.container 中检索已初始化的绑定,但似乎没有明显的方法可以这样做。
android - Koin vs Kodein - 依赖注入你更喜欢什么?科特林
你更喜欢 Kotlin 的 Android 依赖注入是什么?我已经开始使用 Kodein,但如果 Koin 更好,我不想浪费我的时间。
我已经阅读了 Makery Kotlin Development 的这个演示文稿https://www.kotlindevelopment.com/koin-vs-kodein/,它真的很棒。
从那个演示来看,这些是差异:
科登
- 强大的
- 大量功能
- 很棒的文档
- 更复杂的 API
科因
- 较小
- 较少的功能
- 天然原料药
Github 明星 Kodein 1164 vs 1350 Koin
谢谢 !!
kotlin - Kodein 清理/销毁方法
我正在Kodein.global
为我的 LibGDX 项目使用 kodein(变体)。许多 LibGDX 对象都有自己的清理方法(dispose
和Disposable
接口),这些方法在对象不再使用并准备好进行 GC 清理(切换屏幕、退出等时)后调用。我希望在 kodein 执行清理时完成这些调用。
我浏览了 Kodein 文档,但找不到任何对清理方法的引用,比如 Java EE@PreDestroy
或 Spring beandestroy-method
方法。
Kodein 没有这种功能还是我错过了什么?
android - 如何使用 Kotlin 调用返回模块类型的方法?
我有两个文件one.kt
,two.kt
我在one.kt
文件中有内部类。我想在执行某些操作时调用该内部类,例如在 Two.kt 文件中单击按钮。我尝试了一些调用内部类的方法,但方法不调用。请指导我我有什么错误。来自文件的One.kt
文件调用manifest
。像这样,
一.kt:
二.kt:
一些博客说你可以使用它来调用这种类型的方法,但我不知道如何在 Activity 类中使用,因为它没有扩展 Application 类。
我将此代码包含在我的 One.kt 文件中,我想从 Two.kt 文件中调用是否可能?请告诉我
这样对吗 ?像这样调用 val dd = One().CallmyClass().CallMyMethod(1)。但它没有调用我的方法,因为上面的方法是使用 KodeinAware 返回模块类型。
参考:https ://proandroiddev.com/dependency-injection-with-kotlin-kodein-koin-3d783745e48d
更新:
android - 如何在 kodein 中调用的第二时间重新绑定模块?
我有一个android
应用程序,它是在 kotlin 中开发的,我们也使用kodein
依赖项来绑定数据。当第一次绑定数据时,它会正确绑定,但在第二次调用时不会绑定。
问题是,第一次绑定时,此代码将执行
"InitializingCurrentAddressProvider()"
这个类调用并成功执行。
但是当我尝试调用这些线路时
在第二次执行该行但
"InitializingCurrentAddressProvider()"
这个类不执行。这就是问题所在,如果第二个类是执行意味着我将得到结果,那么结果将自动绑定。但它不执行。