我刚刚开始尝试使用AS3项目的快速吊带,但是当我尝试访问它们时,我的注入是无效的。只有当我显式地使用injector.injectInto()将其注入到应该有引用的对象中时,它才有效。但这不可能是SwiftSuspenders的最佳方法,对吧?
发布于 2011-05-13 03:46:29
在类构造函数中访问注入的属性不会有任何变化吗?如果是这样,请使用PostConstruct元。
public class Example
{
[Inject] public var foo:Bar;
public function Example()
{
foo.barMe(); // throws null reference error
}
[PostConstruct]
public function _postConstruct():void
{
foo.barMe(); // OK
}
}PostConstruct:在注入完成上自动调用方法
依赖于自动DI的类的实例只有在DI完成后才能使用。使用PostConstruct元数据注释Injecte类中的方法会导致在所有注入完成后直接调用它们,并且使用实例是安全的。通过使用order参数: PostConstruct(order=1),可以按定义的顺序调用多个方法。
发布于 2013-07-03 01:16:22
您确实需要在每个需要依赖项的对象上调用injectInto。绕过这一步的方法是将该步骤抽象到一个依赖注入容器("DI容器“)中,该容器为您管理该步骤。MVC toolkit,Robotlegs,通过它自己的自动依赖注入系统实现了这一点。
以下是"ActionScript开发人员机器人腿指南“的摘录:
自动化DI容器背后的意图是从应用程序本身抽象出依赖项的实现。本质上,我们完全拆分了这项工作,这样应用程序代码就不再需要做这件事了,而是让第三方-- DI容器--来完成它。
https://stackoverflow.com/questions/5835602
复制相似问题