Articles of кодин

kodein – введенное значение данных не является значением данных

В моем классе CallType я поместил вложенные данные connectivityState.callBackState в значение true, которое инициализируется как false в моем классе ConnectivitySte . Но в моем классе IncomingCallBroadcastReceiver мои данные callBackState не true а false . class CallType { val kodein = Kodein { bind<ConnectivityState>() with provider { ConnectivityState() } } private val connectivityState: ConnectivityState = kodein.instance() […]

Как ввести фабрику переходных зависимостей с Kodein?

Я хочу использовать фабрику ViewModelProvider, чтобы вводить пользовательские дополнительные данные из намерения (например, Club). val teamModule = Kodein.Module { bind<ViewModelProvider.Factory>("team-factory") with factory { club: Club -> TeamListViewModelFactory(club, instance()) } bind<GetTeams>() with provider { GetTeams(instance()) } bind<TeamRepository>() with provider { TeamDataRepository(instance()) } bind<TeamListViewModel>() with factory { context: FragmentActivity -> ViewModelProviders.of(context, instance("team-factory")).get(TeamListViewModel::class.java) } } В моей деятельности […]

kodein, ввод данных в простой класс

Я новичок в разработке котлин и кодин. Я хочу ввести данные в простой класс, который ничего не расширяет. У меня есть моя MainActivity которая расширяет KodeinAppCompatActivity() , мой фрагмент, который расширяет KodeinSupportFragment() вызывает функцию из моего простого класса CallType . Но эта функция должна изменить логическое значение из другого простого класса ConnectivitySate . Я не […]

Заводские привязки Kodein бросают NotFoundException

Я не знаю, если это ошибка, или я просто делаю это неправильно. Я ничего не вижу в документации, в которой говорится, что фабричные привязки kodein следует вызывать любым способом, кроме этого: class KodeinConfidenceTest { @Test fun testThatKodeinWorks() { val kodein = Kodein { bind<Dice>() with factory { sides: Int -> RandomDice(sides) } } val d:Dice […]

Можно ли связать член класса в кодеин?

Существует 2 класса: A – базовый класс B – класс члена A с реализацией чего-то вроде этого: class A { val b : B = B() } class B проблема Можно ли создать привязку для b чтобы скрыть избыточную информацию об источнике b в общих классах? Кодинская декларация: override val kodein by Kodein.lazy { bind<A>() […]

Как сделать многосвязывание с помощью контейнера поиска зависимостей Kodein?

Я перемещаюсь из Кинжара 2 в Кодейн и хочу хорошую альтернативу многопользовательской функции. Есть ли это?

Передача лямбды в качестве аргумента в Кодеин

Я использую Kodein для инъекций зависимостей на Android (в Kotlin, конечно), но я борюсь с одним аспектом: я не могу передать лямбду в качестве аргумента на фабрику. Он правильно компилируется, но не работает во время выполнения (что-то, хотя я имею в виду, что Kodein предназначен для защиты от). В моем классе Application я выполняю следующую […]

Как добавить тестовые переопределения в график зависимостей по умолчанию?

Я хотел бы добавить смешные переопределения в свои контрольные тесты для Android с помощью Kodein. Я не знаю, какой оптимальный подход для этого. Вот что я имею в виду: В моем приложении используется KodeinAware приложений KodeinAware . Служебный экземпляр Kodein содержит все зависимости, требуемые моим приложением. В моих тестах я хотел бы добавить посмеянные переопределения […]

При инъекции зависимостей Кодина я не хочу распространять экземпляры кодеина повсюду

Используя Kodein, я нахожу, что мне нужно передавать экземпляры kodein или вводить их в модули и классы. Но иногда у меня есть классы, которые так отключены. Я хочу, чтобы они просто могли обнаружить «один истинный Кодин». Поскольку это приложение на стороне сервера, и у меня есть только одна область Kodein, это должно быть легко. Я […]

В инъекции зависимостей Kodein, как вы можете вставлять экземпляры Kodein в экземпляры?

В Kodein у меня есть модули, импортированные в родительский модуль, и иногда классам нужен экземпляр Kodein, поэтому они могут делать инъекцию позже. Проблема заключается в этом коде: val parentModule = Kodein { import(SomeService.module) } Где SomeService.module нуждается в экземпляре Kodein для позже, но Kodein еще не создан. Передача его позже в модуль кажется плохой идеей. […]