I plan on digging into one of the open source IoC containers to really figure this out 100%, but I figured I would ask the general community also (after not being able to find a direct answer in any of the closely related questions).
As far as I understand the typical IoC implementation, it seems that it is a global class that acts as a singleton with a knowledge of all dependencies. It then uses that knowledge to supply constructor or property parameters where it knows how to fill them in? Maybe I am missing something, thus the question.
Can somebody definitively tell me how IoC works and/or if it is a singleton at its root?
UPDATE
I guess my question would be how do "magic" IoC things work like Ninject.MVC? Where the injection "just works"?