2010-11-08 15 views
0

dans mon contexte:injection manuelle en classe personnalisée avec swiftSuspenders/robotlegs

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

dans mon parserManager (ne couvre pas toute autre classe) Classe:

public var injector:IInjector; 

le parserManager est injecté dans certains des modèles. Y a-t-il une meilleure façon de le faire? cela est si sale ..

Répondre

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

dans ParserManager:

[Inject] 
public var injector:IInjector 

Je suis un peu suspect d'injecter l'injecteur dans une classe avec le gestionnaire en son nom, mais qui est de la manière la plus propre que je peux penser à le faire. Vous devez garder à l'esprit qu'après que le gestionnaire a été mappé, si vous n'en avez pas besoin immédiatement, il sera injecté avec l'injecteur lors de sa première création (en étant injecté dans une autre classe qui l'utilise). Robotlegs crée des instances paresseusement.