Like most of you, I've been using Dependency Injection in my projects for quite a while. Whether it be the built-in .NET Core Dependency Injection layer, Ninject, StructureMap, Unity, MEF, etc. I've been using a DI layer to do this work for many years. But before I understood the benefit, I did so somewhat reluctantly.