如果子组件与其中一个父组件存在冲突,Dagger 不会抛出异常
Dagger does not throw exception if a subcomponent has conflicting scope with one of the parent components
组件A(范围A)
ComponentB (scopeB, dependencies = ComponentA)
ComponentC (scopeC, dependecies = ComponentB)
SubcomponentD(scopeA,从 ComponentC 创建)。
虽然D和A有冲突但没有抛出异常(code)
如果我们只离开
组件 A(范围 A)
子组件 D(范围 A,从组件 A 创建)
那么将抛出范围冲突异常。
为什么第一种情况没有抛出异常?
我创建了一个 issue 但还没有答案。
我明白了。子组件是其父组件的一部分(不是任何祖先子组件)。所以 Dagger 检查每个组件的范围层次结构(而不是整个图)。参见 here。
组件A(范围A)
ComponentB (scopeB, dependencies = ComponentA)
ComponentC (scopeC, dependecies = ComponentB)
SubcomponentD(scopeA,从 ComponentC 创建)。
虽然D和A有冲突但没有抛出异常(code)
如果我们只离开
组件 A(范围 A)
子组件 D(范围 A,从组件 A 创建)
那么将抛出范围冲突异常。
为什么第一种情况没有抛出异常?
我创建了一个 issue 但还没有答案。
我明白了。子组件是其父组件的一部分(不是任何祖先子组件)。所以 Dagger 检查每个组件的范围层次结构(而不是整个图)。参见 here。