0

我一直在修补IExternalizable,但我注意到了一些意想不到的行为。我有这门课:

public function readExternal(input:IDataInput):void {
    input.readObject();
    input.readObject();
    input.readObject();
}

public function writeExternal(output:IDataOutput):void {
    output.writeObject("first string");
    output.writeObject(424242);
    output.writeObject("second string");
}

但是当我尝试使用 AMF 序列化此类并将其发送到远程服务器(通过RemoteObject)时,Charles 向我显示请求如下所示:
意外结果 http://img.skitch.com/20100406-cjawastycagp1x2chbe76k2suu.png

但是我的序列化对象泄漏到请求的其余部分似乎是错误的。

那么,我做错了什么?我错过了一些文档吗?

4

1 回答 1

1

您的代码看起来不错,但是您应该使用正确的方法进行序列化(writeUTF 用于字符串,writeInt 用于 int 等)。无论如何,Charles 似乎无法与实现 IExternalizable 的对象一起正常工作(我使用的是 3.4.1 版),所以你不应该依赖它所显示的内容。

与您的问题没有直接关系-您真的需要使用 IExternalizable 吗?您将失去与 AMF 压缩算法相关的一些好处(除非您不打算在 writeExternal 方法中实现所有这些东西)。

于 2010-04-06T16:24:19.160 回答