Я использую его в практическом смысле, когда передаем большие двоичные объекты (изображения) через веб-службы. Поэтому, когда я тестирую веб-службу C # с использованием сценария python, двоичный объект можно воссоздать с небольшой магией.
[В python]
import base64
imageAsBytes = base64.b64decode( dataFromWS )
В Dagger у вас есть два способа предоставить объект
Пример:
UserRepository Конструктор @Inject (private val mContext: Context)
blockquote>
- Но как мы можем конструктор @Inject с некоторым классом третьей стороны, таким как Retrofit Service Interface? Вот почему у Dagger есть @Provide
Пример:
@Module class AppModule { @Provides fun provideContext(application: Application): Context = application.applicationContext }
У Dagger также есть какой-то другой способ предоставить объект
Вы можете читать дальше здесь
В вашем случае вы можете предоставить свой класс StringPreference в своем модуле приложения, например, AppModule
@Module class AppModule { @Provides fun provideStringPreference(context: Context): StringPreference = StringPreference(context) }