Android - Kotlin - Dagger 2 - 使用成员注入的限定符注释

时间:2018-01-31 18:38:09

标签: android dependency-injection kotlin dagger-2

我正在尝试通过这样的注释将注入一个字符串限定

@Qualifier
@MustBeDocumented
@Retention(AnnotationRetention.RUNTIME)
annotation class ChannelId

使用构造函数注入时,一切运行良好。现在,当我实施服务时,我需要懒洋洋地注入我的ChannelId

@Inject
@ChannelId
lateinit var channelId: String

我的提供商如下所示:

@Provides
@ChannelId
fun channelId(): String = "channelid"

编译器告诉我,我需要为我的String实现@Provides - 方法,尽管它在我的Object-Graph中。 我在提供程序和服务中使用@Named对此进行了测试:

@Inject
@field:Named("channelId")
lateinit var channelId: String  

Dagger现在可以解析String并将其正确地注入我的服务中。显然我错过了关于限定符 - 注释的一些东西。有人可以帮忙吗? 谢谢。

0 个答案:

没有答案