c# dependency injection same instance multiple interfaces