0

我一直在尝试测试我的应用程序,以确保所有重要的类都可以正确地序列化/重新加载自己(尤其是那些实现的类IExternalizable):

[Test]
public function testMyObjectSerialization():void {
    var myobj:MyObject = new MyObject();
    var ba:ByteArray = new ByteArray();
    ba.writeObject(myobj);
    ba.position = 0;
    var loadedObj:MyObject = ba.readObject();
    assertMyObjectEqual(myobj, loadedObj);
}

当我尝试序列化一个没有[RemoteClass]集合的强类型对象时,我想得到警告(因为这几乎肯定代表了我的代码中的一个错误)。

那么,有什么方法可以配置 AMF 序列化程序以发出警告?

此外,这似乎可以使用services-config.xml......但是文档似乎暗示这services-config是通道级别的,如果我的单元测试可以在不与服务器对话的情况下运行(而且我没有使用 LCDS,所以一堆services-config无论如何都不适用于我)。

4

1 回答 1

2

如果设置了 [RemoteClass] 或任何其他元数据,则无法从 Flash Player 配置本机 AMF 序列化/反序列化以向您发出警告。

但是,您可以编写自己的类来执行此操作 - 您可以在列表中注册所有对象并使用 flash.utils.describeType 检查 [Remote]。或者在 writeObject 上使用一个包装器来检查 [Remote] 元数据。

于 2010-04-12T21:25:28.030 回答