Scenario semplice:Iniettare tutti i servizi che implementano alcune interfacce
Possiedo più servizi che implementano un'interfaccia comune. Tutti questi servizi sono registrati nel metodo bootstrap
.
Ora mi piacerebbe avere un altro servizio, che inietta tutti i servizi registrati che implementano l'interfaccia comune.
cioè
export interface MyInterface {
foo(): void;
}
export class Service1 implements MyInterface {
foo() { console.out("bar"); }
}
export class Service2 implements MyInterface {
foo() { console.out("baz"); }
}
export class CollectorService {
constructor(services:MyInterface[]) {
services.forEach(s => s.foo());
}
}
Che è possibile in qualche modo?
grazie. proverò più tardi :) –
Usa OpaqueToken, per favore vedi la risposta corretta http://stackoverflow.com/a/35916788/8363 – Schmuli