c# dependency injection multiple interfaces