Younger IoC frameworks aim for configuration in code, allowing for a much more dynamic usage.
Examples (c#) * Autofac * Ninject
Examples (c#) * Autofac * Ninject
I agree with a lot of what he writes. At the same time I believe there are cases where I would appreciate some kind of automation for wiring (f.ex. if I want a fresh instance for each session or request). And there are certainly cases when runtime wiring - as in the mentioned case of plugins - is useful.
* by interface * by enum * by parametrized constructor (Func<..>) * by (arbitrary) string * per process / per thread / per whatnot