類似於新的Vector
類的序列化支持是什麼?我有一個Vector.<GameMove>
,我想序列化爲ByteArray
。 GameMove
是一個自定義類。自定義對象的矢量的AS3序列化
我認爲這是必需致電registerClassAlias()
GameMove
,但我也必須註冊Vector.<GameMove>
?這是它自己的獨特類型,還是它是由這兩種類型組成的?
類似於新的Vector
類的序列化支持是什麼?我有一個Vector.<GameMove>
,我想序列化爲ByteArray
。 GameMove
是一個自定義類。自定義對象的矢量的AS3序列化
我認爲這是必需致電registerClassAlias()
GameMove
,但我也必須註冊Vector.<GameMove>
?這是它自己的獨特類型,還是它是由這兩種類型組成的?
事實證明,不,持有自定義類型的向量不需要註冊爲「對」,除了它包含的類型。
實際上,Vector
根本不需要註冊,看起來 - 只是它所持有的類型。至少在我的情況下,序列化爲ByteArray
(當然是AMF3)。
但是,我發現了一個非常奇怪的問題,Array的子類無法反序列化。我會在seperate question中發佈。
發送方始終可以控制序列化對象時使用的類。例如,Fluorine會將.NET中的IList作爲ArrayCollection實現到Flex客戶端或將Array發送到Flash客戶端。在這種情況下,除了使用ArrayCollection或Array之外別無選擇。
其他AMF實現可能會有所不同。氟化過程最後註冊了別名,但其他人可能會先做。所以無論Vector。 <>將正確序列化兩種方式取決於您使用的服務器。
要知道它是否適用於您的服務器,最好的方法就是測試它。然後,如果它不起作用,請提出更具體的問題,以瞭解是否有解決方法或是否將其視爲錯誤。
謝謝,山姆。雖然我實際上並沒有序列化到服務器,只是進入ByteArray進行持久化,所以這是amf3的內部「玩家」實現對我而言很重要。 – aaaidan 2010-03-28 22:47:35