【问题标题】:AS3 serialization of Vector of custom objects自定义对象 Vector 的 AS3 序列化
【发布时间】:2010-03-29 07:24:19
【问题描述】:

新的Vector 类的序列化支持是什么样的?我有一个Vector.<GameMove>,我想将其序列化为ByteArrayGameMove 是一个自定义类。

我认为有必要在GameMove 上致电registerClassAlias(),但我是否也必须注册Vector.<GameMove>?是它自己独特的类型,还是这两种类型的组合?

【问题讨论】:

    标签: apache-flex flash actionscript-3 serialization vector


    【解决方案1】:

    在序列化对象时,发送者始终可以控制使用的类。例如,Fluorine 会将任何在 .NET 中实现 IList 作为 ArrayCollection 发送到 Flex 客户端或将 Array 发送到 Flash 客户端。在这种情况下,除了使用 ArrayCollection 或 Array 之外别无选择。

    其他 AMF 实现可能会有所不同。 Fluorine 最后处理注册的类别名,但其他人可能会先处理。因此,Vector. 是否会以两种方式正确序列化取决于您使用的服务器。

    了解它是否适​​用于您的服务器的最佳方法是对其进行测试。然后,如果它不起作用,请提出更具体的问题,以了解是否有解决方法或是否将其视为错误。

    【讨论】:

    • 谢谢,山姆。虽然我实际上并没有序列化到服务器,只是为了持久化到一个 ByteArray 中,所以对我来说重要的是 amf3 的内部“播放器”实现。
    【解决方案2】:

    事实证明,不,除了它包含的类型之外,包含自定义类型的向量不需要注册为“对”。

    事实上,Vector 似乎根本不需要注册 - 只是它持有的类型。至少在我序列化为ByteArray(当然是AMF3)的情况下。


    不过,顺便说一句,我发现了一个非常奇怪的问题,即 Array 的子类无法反序列化。我会将其发布到seperate question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      相关资源
      最近更新 更多