Frage

in meinem Kontext:

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

in meinem parserManager (erweitert keine andere Klasse) Klasse:

public var injector:IInjector;

die parserManager wird in einigen Modellen injiziert. Gibt es einen besseren Weg, es zu tun? das ist so schmutzig ..

War es hilfreich?

Lösung

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

in ParserManager:

[Inject]
public var injector:IInjector

Ich bin ein wenig suspekt von in seinem Namen den Injektors in eine Klasse mit Managern-Injektion, aber das ist über den sauberste Weg von dem ich denken kann, um es getan.

Sie sollten bedenken, dass, nachdem der Manager zugeordnet wurde, wenn Sie es nicht brauchen sofort, dann wird es mit dem Injektor eingespritzt werden, wenn es zum ersten Mal erstellt wird (durch in einer anderen Klasse eingespritzt wird, dass Verwendungen es). Robotlegs schafft lazily Instanzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top