Koin geProperty () в KoinComponent не разрешен

Коин 2.0.0-бета-1

Я могу получить свойство (СЕРВИС) только в модуле приложения. В Activity, Fragment, ViewModel и Service нельзя использовать getProperty.

Что-то изменилось в бета-версии?


person Tumur.B Alex    schedule 07.03.2019    source источник


Ответы (1)


Если мы исследуем код src для KoinComponent мы видим функцию getKoin (), которая возвращает экземпляр Koin. В коде src для класс Koin мы находим требуемый getProperty

см. ниже простой пример использования

import org.koin.Logger.slf4jLogger
import org.koin.core.KoinComponent
import org.koin.core.context.startKoin
import org.slf4j.LoggerFactory

class Runner : KoinComponent {
    val logger = LoggerFactory.getLogger("entry")

    companion object {
      @JvmStatic
      fun main(args: Array<String>) {
          startKoin {
            slf4jLogger()
            fileProperties()
            modules()
        }
      val runner = Runner()
      runner.initVals()
       }
    }

    fun initVals() {
      logger.info("koin is go")
      val url: String? = getKoin().getProperty("SERVER_URL")
      logger.info("koin properties is go ${url}")
    }
}

// koin.properties in src/main/resources
SERVER_URL=https://some_server_url
person Nigel Savage    schedule 15.04.2019
comment
Большое спасибо. Я этого не знал. Еще раз спасибо. - person Tumur.B Alex; 17.04.2019