This is because DI currently happens at runtime not compile time and
depend on listening to Event.ADDED_TO_STAGE at the capture phase
(which alone slows things down when I tested it, I can only presume
these events don't get dispatch if its not listened to, and if you add
this listener every DisplayObject has to dispatch it, and then when
you find something that requires injection describeType() is used to
get a large chunk of XML to inspect to see what needs injecting, if
anything.
There was some talk a while ago about Metadata becoming a first class
citizen in Flex, anyone have any more info on this and whether it
progressed?
The DI frameworks out there remove the things we don't like
(Singletons etc), but being Singletons etc themselves (i.e. they don't
remove the nasty stuff from the running code, they just hide it from
the code you write).
Couldn't we inject at compile time.As the compiler does with other
metadata it could find injection points, and using Singletons hidden
behind the scenes to give the correct values to the correct properties
in the generated code? This would remove the current bottlenecks we
have with DI.
Tink
On 4 Jan 2012, at 22:09, Alex Harui wrote:
"And I predict the same with DI. Injecting everything will slow
things down
if you start injecting small things."
|