我只是试图在AS3项目中使用快速吊带,但是当我尝试访问它们时,我的注射是空的。它只有在我明确地使用injector.injectInto()注入应该有引用的对象时才有效。但这不是SwiftSuspenders的最佳方法,对吧?
答案 0 :(得分:0)
您是否通过任何更改访问类构造函数中的注入属性?如果是,请使用PostConstruct
meta。
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完成后。注解 injectee类中的方法 [PostConstruct]元数据导致它们 毕竟是直接调用的 注射已经完成,它是 安全使用实例。多 方法可以在定义的中调用 使用order参数订购: [PostConstruct(顺序= 1)]。
答案 1 :(得分:0)
你做需要在每个需要依赖的对象上调用injectInto
。围绕此步骤的方法是将该步骤抽象为依赖注入容器(“DI容器”),以便为您管理。 MVC工具包Robotlegs通过自己的自动依赖注入系统实现了这一点。
以下摘自“ActionScript Developer's Robotlegs指南”:
自动化DI容器背后的意图是抽象出来 从应用程序本身实现依赖性。实质上, 我们完全拆分了这个工作,所以应用程序代码没有 更长时间必须这样做,而我们要求第三方 - DI 容器 - 完成它。