Angular 2 Inject Dependency за пределами конструктора

В настоящее время я копаюсь в DI в Angular 2. Я реализую REST-клиент, используя общие подтипы для конкретных типов данных, например:

class RESTClient<T>{
    constructor() {
        var inj =  ReflectiveInjector.resolveAndCreate([HTTP_PROVIDERS]);
        this.http = inj.get(Http);
        this.conf = RESTConfiguration;
    }
}
class BookClient extends RESTClient<Book>{      
    constructor(){
        // since I dont want to inject the HTTP Providers here, I'm using a custom    injector in the super class
        super();
    }
}

class WriterClient extends RESTClient<Writer>{      
    ...
    ...
}

Итак, насколько я понимаю, будет одна служба http, совместно используемая всеми RESTClients, внедренными суперклассом REST-Service.

Теперь я хочу иметь класс RESTConfiguration как таковой:

@Injectable()
export class RESTConfiguration {
    get baseURL() {
     return this._baseURL;
    }

    set baseURL(value) {
        alert("sets value to"+value);
        this._baseURL = value;
    }

    private _baseURL;

}

Это должно быть настроено в основном приложении как таковое:

initializeApp(){
  this.restconf.baseURL = "http://localhost:3004/";
}
bootstrap(MyApp, [RESTConfiguration]).then();

Теперь мне интересно, как внедрить один единственный экземпляр моего RESTConfiguration в класс RESTService, не передавая его конструктору, который я хочу оставить без аргументов, чтобы уменьшить дублирование кода и избежать проблем с обобщениями в машинописи.

В приведенном выше примере (первый фрагмент кода) я пытаюсь внедрить свою конфигурацию, используя созданный мной ReflectiveInjector, который предоставляет мне пользовательский экземпляр моей конфигурации.

Я думал о нескольких решениях:

Получение доступа к «глобальному инжектору» приложений, сделав его доступным с помощью службы или некоторого свойства статического класса

Реализация дополнительной синглтон-логики в моей конфигурации

найти способ использовать метод угловых инъекций за пределами конструктора?

Есть ли ошибки в моем мышлении или я неправильно использую структуру DI?

Ответы на вопрос(1)

Ваш ответ на вопрос