如果子组件与其中一个父组件具有冲突范围,则Dagger不会抛出异常

时间:2017-07-21 11:25:10

标签: android dependency-injection dagger-2 dagger

ComponentA(scopeA)
ComponentB(scopeB,dependencies = ComponentA)
ComponentC(scopeC,dependecies = ComponentB)
子组件D(scopeA,从ComponentC创建)。

虽然D与A(code

发生冲突,但不会抛出异常

如果我们只离开 ComponentA(scopeA)
子组件D(scopeA,从ComponentA创建)
那么将抛出冲突的范围异常。

为什么在第一种情况下没有抛出异常?

我创建了issue但尚无答案。

1 个答案:

答案 0 :(得分:1)

我明白了。子组件是其父组件的一部分(不是任何祖先子组件)。因此Dagger检查每个组件的范围层次结构(不是整个图形)。请参阅here