If you read my article you will see that I specifically stated that I do not write class libraries where developers can pick and choose which classes they want to use. I write complete applications, and the Person class is part of my “Party” subsystem which you either use in its entirety or do not use at all.
It is not correct to say that my singleton class “manages” any dependencies. It simply returns an instance of the named class and the name of that class is hard-coded in the object which wants to use the dependency.
I repeat, I do not write sharable class libraries, I write complete applications. You either use the whole application or you don’t use it at all.
That is only relevant if my intention is to write code that can be shared outside of my framework. It is not, and I am not going to spend any time in providing a mechanism to do something which I know that I will never do. This would violate the YAGNI principle,
It is also not the “best way to do things” if you implement DI in circumstances where it was not designed to be used. My article contains the following description:
In the above example the Address object is not interchangeable with any other object as address data can only be obtained from a single place, so if it is not interchangeable it is not a good candidate for DI.