SwiftSuspenders不应该像它一样工作吗?

时间:2011-04-29 18:00:48

标签: actionscript-3 null swiftsuspenders

我只是试图在AS3项目中使用快速吊带,但是当我尝试访问它们时,我的注射是空的。它只有在我明确地使用injector.injectInto()注入应该有引用的对象时才有效。但这不是SwiftSuspenders的最佳方法,对吧?

2 个答案:

答案 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)]。

ref [1]

答案 1 :(得分:0)

需要在每个需要依赖的对象上调用injectInto。围绕此步骤的方法是将该步骤抽象为依赖注入容器(“DI容器”),以便为您管理。 MVC工具包Robotlegs通过自己的自动依赖注入系统实现了这一点。

以下摘自“ActionScript Developer's Robotlegs指南”:

  

自动化DI容器背后的意图是抽象出来   从应用程序本身实现依赖性。实质上,   我们完全拆分了这个工作,所以应用程序代码没有   更长时间必须这样做,而我们要求第三方 - DI   容器 - 完成它。