Setters injection
Instead of using by inject()
lazy delegate expression to retrieve desired dependency, you can inject the property directly
note
This feature is experimental
Injecting a property
Let's take a class that need some property injection:
class B
class C
class A {
lateinit var b: B
lateinit var c: C
}
You can inject your properties with inject
extension like follow:
val a : A = A()
// inject properties
a::b.inject()
a::c.inject()
info
inject()
on a property is not using any reflection APIFor any special injection (like ViewModel for Android ...), use manual injection like
a.b = getViewModel(...)
Injecting all properties [reflect API]
Another way to inject all your dependencies, is to use inject
from your instance:
val a : A = A()
// inject all properties
a.inject(a::b, a::c)
note
This T.inject(...)
function is using reflection to guess your properties types here