Flex:配置 AMF 序列化警告?

发布于 2024-08-28 15:32:04 字数 691 浏览 8 评论 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 不适用于我),我真的很喜欢反正)。

I have been trying to test my application to make sure that all the important classes can serialize/reload themselves properly (especially those which implement 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);
}

And I would like to be warned when I try to serialize a strongly-typed object which does not have a [RemoteClass] set (because that almost certainly represents a bug in my code).

So, is there any way to configure the AMF serializer to give warnings?

Also, it seems like this might be possible using services-config.xml… But the documentation seems to imply that services-config is channel-level, and I'd really like it if my unit tests could run without talking to the server (and I'm not using LCDS, so a bunch of the services-config wouldn't apply to me anyway).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怀念你的温柔 2024-09-04 15:32:04

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

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

There is no way to configure the native AMF serialization/deserialization from the Flash Player to give you warnings if [RemoteClass] or any other metadata is set or not.

However you can write your own class to do that - you can register all the objects in a list and check for [Remote] using flash.utils.describeType. Or use a wrapper over writeObject which check for the [Remote] metadata.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文