Recently, I was struck by the idea of having a IOC, DI container which does not require any libraires at runtime.
What it would do is have two modes; a pre-generated container using code generation, and a dynamic version which would work the same way by allow changes without recompilation.

It occurred to me that being able to generate code to do the same thing as the dynamic container would have some advantages.
- You can clearly see exactly what the container does. (For educational purposes)
- It is simple to debug. Just add a break point like you would regular code.
- It supports code analysis and refactoring.  You can clearly see what is no longer used, and how you could change the configuration of your components.
- Smaller download, for applications deployed over the web.

I have a prototype working I have found that being able to read the results helps ensure a clean implementation as well.  Not sure when I will have time to release this for your amusement, but that it the plan....