我正在使用 Python+PyAMF 与 Flex 客户端来回交谈,但我使用的 psudo-Enum-Singletons 遇到了问题:
class Type {
public static const EMPTY:Type = new Type("empty");
public static const FULL:Type = new Type("full");
...
}
当我使用本地创建的实例时,一切都很美好:
if (someInstance.type == Type.EMPTY) { /* do things */ }
但是,如果 'someInstance' 来自 Python 代码,那么它的 'type' 实例显然不会是Type.EMPTY
or Type.FULL
。
那么,让我的代码工作的最佳方法是什么?
有什么方法可以控制 AMF 的反序列化,所以当它加载 remote 时Type
,会调用正确的转换?还是我应该咬紧牙关并Types
使用其他东西进行比较==
?或者我可以以某种方式欺骗==
类型凝聚力来做我想做的事吗?
编辑:或者,Flex 的远程处理套件是否提供在实例反序列化后运行的任何挂钩,以便我可以执行转换?