When to use Dependency injection? - C#