Ответ
Для автоматического внедрения зависимостей через Dagger используйте аннотации:
@Inject- помечайте конструктор класса, который должен быть внедрен:
class MyRepository @Inject constructor() { ... }
- В модуле провайдите зависимости:
@Module
class AppModule {
@Provides
fun provideRepository(): MyRepository = MyRepository()
}
- В месте, где нужна зависимость, также используйте
@Inject:
class MyViewModel @Inject constructor(
private val repository: MyRepository
) { ... }
Dagger автоматически найдет и внедрит зависимости при условии:
- Класс присутствует в графе зависимостей (через модуль или конструктор)
- Компонент правильно сконфигурирован и построен
- Внедрение происходит через Dagger-сгенерированный код