1

我只是在尝试将 swift 吊带用于 AS3 项目时弄湿了我的脚,但是当我尝试访问它们时,我的注射是空的。它仅在我显式使用 injector.injectInto() 注入应该具有引用的对象时才有效。但这不是 SwiftSuspender 的最佳方法,对吧?

4

2 回答 2

0

您不是通过任何更改访问类构造函数中的注入属性吗?如果是这样,请使用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] 元数据注释注入类中的方法会导致在所有注入完成后直接调用它们,并且可以安全地使用该实例。可以使用 order 参数以定义的顺序调用多个方法:[PostConstruct(order=1)]。

参考文献 [1]

于 2011-05-12T19:46:28.963 回答
0

确实需要调用injectInto每个需要依赖项的对象。绕过此步骤的方法是将该步骤抽象到为您管理的依赖注入容器(“DI 容器”)中。MVC 工具包Robotlegs使用其自己的自动依赖注入系统来实现这一点。

以下是“ActionScript Developer's Guide to Robotlegs”的摘录:

自动化 DI 容器背后的意图是从应用程序本身抽象依赖项的实现。从本质上讲,我们将这项工作完全分开,这样应用程序代码就不再需要这样做了,而是我们要求第三方——DI 容器——来完成它。

于 2013-07-02T17:16:22.037 回答