Recently, I’ve been considering using an IoC container in my WPF app. It came to a point where the app was getting pretty huge in terms of number of different views, view models and code in general. So to make my life easier, I wanted to use an IoC container to handle all kinds of services differently for production and testing.
However, all IoC libraries I could find were pretty big, containing thousands of lines of code I wouldn’t use and I wanted to keep it simple and small in size. So I’ve decided to make my own simple IoC container.
What should it do?
My requirements for the IoC container were:
- Registering an implementation of an interface
- Getting an instance of a service by the interface it implements
Here’s what I’ve got so far
How can I use it?
With the code above, the custom IoC container can be used like this:
And that is it. It’s simple, doesn’t do any crazy stuff. It just does what I needed, nothing more. I hope you might find this helpful, too.