Показать сообщение отдельно
Старый 17.04.2012, 15:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
ОК, для начала внесем немного ясности:
1. Dictionary можно сериализовать прямо как есть.
2. Прямо как есть сериализуется с багами (если было занесено два ключа простых типов, а потом один из ключей удалили, то другой остается при условии что строковое представление ключей одинаковое).
3. Баг легко избегается потому что Dictionary никогда не нужно использовать с ключами примитивных типов (т.как это вобщем-то и не возможно). Поскольку Dictionary является динамическим классом то при попытке записать в него ключ простого типа в первую очередь будет сделана попытка записать его как свойство динамического класса, а не как ключ. (Если по-простому, вы его будете использовать как будто это обычный Object или любой другой динамический объект).
4. ArrayCollection - это класс противопоказаный к использованию в любой ситуации. Если бы вы могли его удалить из фреймворка - это было бы самым оптимальным вариантом. Его никогда и ни в коем случае не нужно сериализировать уже хотя бы потому, что вы не сохраните порядок в массиве, фильтр, позиции курсоров / закладок и т.п. Этот класс был написан паталогическими идиотами которых неизвестно где раскопала компания Адоби, поэтому даже близкий контакт с этим классом способен привести к легкой форме шизофрении.
5. Вы добъетесть абсолютно того же эффекта что и от сериализации ArrayCollection если будете сериализовать ее source свойство. С той разницей, что будет по-крайней мере очевидно, что вы делаете. При этом вы сэкономите пару тактов процессора и, что немаловажно, зависимости к флексовому фреймворку.
__________________
Hell is the possibility of sanity