2012-04-11 26 views
3

是做它很简单,你写的对象到文件,然后你读它:Flex Air:从文件读取“ActionScript对象”然后投射?

我的问题是

  1. 为什么当我们将[RemoteClass(alias =“foo.Bar”)]放入VO时,它可以自动地投射 (否则反序列化的类型d对象是 具有正确属性数据的通用对象)?
  2. 是否有另一种方法来实现它没有RemoteClass标签? (使用元数据标签是偏好)

感谢

回答

2
  1. 答案是在page您链接到:

    注意,别名是存储与类的关键实例 ,并且当该对象的一个​​实例被序列化时,该类定义与ByteArray中存储的特定对象 相链接。这个 键可以是标识该类的任何唯一字符串,但约定是 以使用完全标准化的包和类名称。

    这就是为什么如果您省略别名即可获得通用对象 - 反序列化方法不知道如何处理数据,除非您指定值映射到哪个类。

  2. 是的,有:registerClassAlias()做同样的事情。但元数据标签要读得更漂亮;)

+0

谢谢。我认为你回答了这个问题,尽管我们决定使用由Adobe驱动的数据模型来生成所有的sqlLite DAO代码。不再需要序列化/反序列化 – 2012-04-15 16:54:53