Domanda

nel mio contesto:

var parserManager:ParserManager = injector.instantiate(ParserManager);
parserManager.injector = injector;
injector.mapValue(ParserManager, parserManager);

nel mio parserManager (non si estende qualsiasi altra classe) classe:

public var injector:IInjector;

il parserManager viene iniettato in alcuni modelli. C'è un modo migliore di farlo? questo è così sporco ..

È stato utile?

Soluzione

injector.mapSingleton(ParserManager);
var parserManager:Parser = injector.getInstance(ParserManager);

in ParserManager:

[Inject]
public var injector:IInjector

Sono un po 'sospetto di iniettare l'iniettore in una classe con Gestione nel suo nome, ma che è circa il modo più pulito che posso pensare di farlo fare.

Si dovrebbe tenere a mente che dopo che il gestore è stato mappato, se non ne hai bisogno subito poi sarà iniettato con l'iniettore prima volta che viene creato (per essere iniettato in un'altra classe che l'utilizza). Robotlegs crea istanze pigramente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top