Keep Dependency Injection Simple

Let me see whether I understand this.

A, D, and F all need X. OK.

X x = new X(new Service());
new A(x, new B(new C(new D(x, new E(new F(x, new G(x)))))));

I don't understand "through the constructor" here. I added a parameter to three constructors. E don't know about F's constructor (why would it?). Neither B nor C knows about D's constructor (why would it?). If you're not sure, then introduce variables for the instances of classes A through G.

What's the problem? Where is the "carrying"? I don't see it.