AS3 сериализация вектора пользовательских объектов - PullRequest
0 голосов
/ 26 марта 2010

Какова поддержка сериализации для нового класса Vector? У меня есть Vector.<GameMove>, который я хотел бы сериализовать в ByteArray. GameMove - это пользовательский класс.

Полагаю, необходимо набрать registerClassAlias() на GameMove, но нужно ли также регистрироваться Vector.<GameMove>? Это его собственный отличительный тип или он состоит из этих двух типов?

Ответы [ 2 ]

0 голосов
/ 29 марта 2010

Как оказалось, нет, вектор, содержащий пользовательский тип, не должен быть зарегистрирован как "пара", в дополнение к типу, который он содержит.

На самом деле, Vector вообще не нужно регистрировать, кажется - только тип, который он держит. По крайней мере, в моем случае сериализации до ByteArray (AMF3, конечно).


Однако, в стороне, я обнаружил очень странную проблему, когда подклассы Array не могут быть десериализованы. Я опубликую это в отдельном вопросе .

0 голосов
/ 26 марта 2010

Отправитель всегда имеет контроль над тем, какой класс используется при сериализации объекта. Например, Fluorine отправит все, что реализует IList в .NET как ArrayCollection, клиенту Flex или Array - клиенту Flash. В этом случае нет другого выбора, кроме как использовать ArrayCollection или Array.

Другие реализации AMF могут отличаться. Фтор обрабатывает зарегистрированные псевдонимы классов последними, но другие могут сделать это первыми. То, будет ли Vector. <> Правильно сериализован в обоих направлениях, зависит от сервера, который вы используете.

Лучший способ узнать, работает ли он на вашем сервере, - просто протестировать его. Затем, если это не сработает, задайте более конкретный вопрос, чтобы выяснить, есть ли обходной путь или он считается ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...