Recently I developed a performance tester console application, with no UI, with the help of a IoC containter (Castle-Windsor-Microkernel). This library enabled me to let the user choose which test(s) to run, simply by changing the configuration file.
Have I realized what IoC containers are about? I’m not sure. Even Joel said here on SO that IoC are difficult to understand.
From my example, what do you conclude? Am I using IoC container for exactly what they were designed for? Or I am just using one of its secondary features?
IoC containers are designed primarily to support DI (dependency injection). You seem to be just using a secondary feature, though it’s hard to tell for sure from your description. Your use is valid, but not the primary one.
IoC containers are not about configuration files – in fact there are examples that don’t use configuration files at all (e.g. LinFu).
Suggest you read up on dependency injection to find out what it’s really all about.