Draft attempt at a dependency injection framework for C#