Как в модуле DI передать свойство класса в другой класс из этого же модуля в koin?
Всем привет! есть класс:
class ViewModel( private val dataSourceFactory: DataSourceFactory, application: Application) {
val compositeDisposable = CompositeDisposable()
fun onCleared() {
super.onCleared()
compositeDisposable.clear()
}
}
модуль класса создается через DI, при помощи koin:
viewModel { ViewModel(get (), androidApplication()) }
single { DataSourceFactory(get() }
single { DataSource()}
, как мне передать свойство compositeDisposable в класс DataSource для отписки?
Ответы (1 шт):
В данной реализации вы этого сделать нет сможете.
Здесь есть два пути:
Вы можете создавать ваш CompositeDisposable где-то снаружи в модуле DI и затем передавать его как зависимость. Но я так понимаю этот вариант вам нет подойдёт.
Вы можете в вашем DataSourse в конструкторе создать зависимость от CompositeDisposable и передать ее как динамический параметр, но тогда вам придется создавать ваш DataSourse непосредственно во ViewModel, а нет через конструктор.
Вот тут можно посмотреть как в коин добавлять параметры динамически https://medium.com/koin-developers/koin-0-9-0-getting-close-to-stable-release-74df9bb9e181