在使用 Robotlegs/Signals 时,我会出现一堆这样的警告消息。每次执行此命令类时,即每 2-3 秒 ..此消息显示在下方
如果您有意覆盖了此映射,则可以在替换映射之前使用“injector.unmap()”以避免看到此消息。警告:Injector 已经有一个“mx.messaging.messages::IMessage”类型的规则,命名为“”。
该命令功能正常,但我认为无论如何我做错了什么。
public class MessageReceivedCommand extends SignalCommand
{
[Inject]
public var message:IMessage;
...etc.. do something with message..
}
应用程序上下文不会将 IMessage 映射到此命令,因为我只看到 mapSignalClass 的一个选项,除了有效负载接收良好。
想知道是否有人知道我如何修复或抑制此消息。我试过把它称为警告建议
injector.unmap(IMessage, "")
但我收到一个错误 - 找不到名为“”的 ::IMessage 的映射。
谢谢
编辑:有关错误的更多信息
这是我发送给命令的信号
public class GameMessageSignal extends Signal
{
public function GameMessageSignal()
{
super(IMessage);
}
}
从 IPushDataService 类调度
gameMessage.dispatch(message.message);
并且实现在应用程序上下文中通过
injector.mapClass(IPushDataService, PushDataService);
随着信号
signalCommandMap.mapSignalClass(GameMessageSignal, MessageReceivedCommand);
编辑#2:可能还需要指出我将 GameMessageSignal 的一个实例注入 IPushDataService
public class PushDataService extends BaseDataService implements IPushDataService
{
[Inject]
public var gameMessage:GameMessageSignal;
//then
private function processMessage(message:MessageEvent):void
{
gameMessage.dispatch(message.message);
}
}
编辑:3
我在 SignalContext 中设置的映射:
injector.mapSingleton(IPushDataService);
injector.mapClass(IPushDataService, PushDataService);