Project DescriptionAn example, simplest-thing-that-could-possibly work inversion of control framework.
Written in C#.
To use it, create the type of container first:
InversionOfController.Container = new DefaultContainer();
Then register the types you will need:
InversionOfController.Container.Register<ITalkingAnimal, Parrot>();
InversionOfController.Container.Register<ITalkingAnimal, Dog>();
InversionOfController.Container.Register<ITalkingAnimal, Cat>();
Then when you need to create a type:
var animal = InversionOfController.Container.Resolve<ITalkingAnimal>();