flexAMF3中序列化和反序列化的Alias机制

很多人翻译Alias为“别名”,不太好,在金山词霸中还有另外一个意思“双面女间谍”,很形象。环境:服务器端使用java,客户端使用as3。

1)声明我的as3对象A是可以被强制转换为服务器端的java对象B的

在对象中使用

[RemoteClass(alias="B")]
Java代码

1. public class A{
2. ....
3. }

public class A{
....
}

另外一种,在application中,module或者调用远程RemoteObject前使用:


Java代码

1. registerClassAlias("B", A)

registerClassAlias("B", A)

注:据网上资料说第一种使用元数据标签的内部实现是第二种。





2)怎么知道一个类是否有“别名”。使用方法:

一种方法getClassByAlias(aliasName:String):Class

二种方法,使用反射:

Java代码

1. override protected function encodeComplex(o:Object, b:IBinary, context:IContext=null):void
2. {
3. var desc:XML = describeType(o);
4. var classAlias:String = desc.@alias;
5. //...
6. }

override protected function encodeComplex(o:Object, b:IBinary, context:IContext=null):void
{
var desc:XML = describeType(o);
var classAlias:String = desc.@alias;
//...
}



3)使用“别名”解决序列化时碰到的不能转换的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值