类型注册
Fory 需要知道序列化消息中的某个类型对应哪个类。你要做的,就是在序列化或反序列化之前注册每个类。
选择注册策略
Fory 提供两种策略。选定一种后,就要在所有读写该类型的语言里保持一致。
策略一:数字 ID
更紧凑,也更快。适合小团队在服务间统一协调 ID。
ModelsFory.register(fory, User, id: 100);
其他语言里也必须使用相同的数字:
// Java side
fory.register(User.class, 100);
策略二:Namespace + Type Name
自描述性更强。适合多个团队或多个包独立定义类型,而协调数字 ID 不现实的场景。
ModelsFory.register(
fory,
User,
namespace: 'example',
typeName: 'User',
);
每个读写该类型的运行时都必须使用相同的 namespace 和 typeName。
不要对同一个类型混用策略。 如果一侧使用数字 ID,另一侧使用名称,反序列化会失败。
注册生成类型
调用 .fory.dart 文件中生成的 register 函数,它会为你安装好所需的全部序列化元信息:
UserModelsFory.register(fory, User, id: 100);