So there is two types of DI, one way automatically wired through an IOC container, and the other manually wired through constructors. They both are the same thing, but one uses some configuration and magic to make it easier to pass around these interfaces.
Mark Seeman's blog[0][1][2](many more related articles, these are particularly related) helped me grasp some of this stuff.
Mark Seeman's blog[0][1][2](many more related articles, these are particularly related) helped me grasp some of this stuff.
[0]: https://blog.ploeh.dk/2014/06/10/pure-di/
[1]: https://blog.ploeh.dk/2017/01/30/partial-application-is-depe...
[2]: https://blog.ploeh.dk/2017/01/27/dependency-injection-is-pas...