【问题标题】:Koin: Workaround for Single(override = true) {}Koin:Single(override = true) {} 的解决方法
【发布时间】:2021-06-21 13:33:36
【问题描述】:

当从 Koin 3.0.2 迁移到 3.1 时,我们注意到我们不能再这样做了

loadKoinModules(module { single(override = true) { serviceMock } })

既然删除了“覆盖”参数,那么在新版本中解决此问题的方法是什么?

【问题讨论】:

    标签: kotlin koin


    【解决方案1】:

    因为 Koin 3.1 覆盖是默认设置。具有相同映射的最后一个模块将覆盖前一个。

    val myModuleA = module {
        single<Service> { ServiceImp() }
    }
    val myModuleB = module {
        single<Service> { TestServiceImp() }
    }
    
    startKoin {
        // TestServiceImp will override ServiceImp definition
        modules(myModuleA,myModuleB)
    }
    

    这是documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 2011-09-09
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      相关资源
      最近更新 更多