Чтобы сериализовать пользовательские классы в ByteArray
, вы должны поместить registerClassAlias
в конструктор класса, вызывающего функцию byteArray.writeObject()
.
Если нет, ваш пользовательский класс будет сериализованкак тип объекта.Я вызывал registerClassAlias
в функции сериализации ниже, и мой пользовательский класс продолжает сериализоваться как Object
, пока я не переместил registerClassAlias
в конструктор.
public class MyClass{
public function MyClass(){
registerClassAlias("com.myclass", MyClass); // Ok, serializes as MyClass
serialize( new MyClass() );
}
private function serialize( _c:MyClass ){
var byteArray:ByteArray = new ByteArray();
byteArray.writeObject( _c );
//registerClassAlias("com.myclass", MyClass); Not ok, serialized as Object
EncryptedLocalStorage.setItem('key', byteArray);
}
}