Зачем вам инжектить именно в метод? В этом есть какой-то смысл?
Я думаю то что вы хотите можно сделать вот так
take.ms/Jt2pn. Нужно использовать this.inject, а появляется этот инжектор в классе из-за декоратора @Injectable() (@Directive и @Pipe наследуют от @Injectable). Когда вы инжектите в конструктор неявно происходит вот это, очень приблизительно:
@Injectable()
export class ApiService {
private _http: Http
constructor() {
this.injector = ReflectiveInjector.resolveAndCreate([Http]); // автоматически разрешает зависимости и заменяет new Http()
this._http = this.injector.get(Http) // получаем синглтон в пределах инжектора https://angular.io/docs/ts/latest/guide/hierarchical-dependency-injection.html
}
}
А как ангуляр понимает, что это не просто параметр, а di? В инжекторе есть map в которой регистрируются зависимости, ключами являются типы внедряемых классов, в данном случае Http.
В официально документации все это написано, понятно даже с гугл переводчиком.