2

在应用程序配置文件中,我有一个信号/命令映射

signalCommandMap.map(DisconnectUserSignal).toCommand(DisconnectUserCommand);

然后,我有两个连接类:

public class BaseConnection implements IBaseConnection
{ 
   // When I am trying to inject the signal here: 
   [Inject] public var disconnectUserSignal:DisconnectUserSignal; // it is always null

   _netConnection = new NetConnection();
   ... 
}

public class BBConnection extends DefaultConnectionCallback implements IBBConnection
{ 
  // When I am trying to inject the signal here:
  [Inject] public var disconnectUserSignal:DisconnectUserSignal; // it works perfectly fine

  _baseConnection = new BaseConnection(this);
}

有什么建议可能是什么原因?谢谢

4

1 回答 1

0

在浏览了robotlegs 框架文档之后——我找到了答案:

我将 _baseConnection 更改为一个接口,并将 BaseConnection 的构造函数中的所有内容移动到 init 方法中,现在我将其注入到我的 BBConnection 中。

BBConnection 现在的样子如下:

[Inject]
public var baseConnection:IBaseConnection;

public function BBConnection() 
{
}

[PostConstruct]
public function init():void
{
   baseConnection.init(this);
}

现在我可以成功地在基本连接中注入 Disconnect 信号。

来源:https ://github.com/robotlegs/robotlegs-framework/wiki/common-problems#injected-properties-are-null-in-constructor

于 2014-05-16T16:30:57.393 回答