我可以看到 protobuf-net 似乎需要对运行类型模型进行确定性排序。什么是一个很好的策略来使用而不需要在每个类上都有属性来进行排序。
如果您是通过属性实现的,protobuf 它自己会如何做?
model.Add(typeof(IMessage), false).AddSubType(8500, typeof(DogBarkedEvent));
model.Add(typeof(IMessage), false).AddSubType(8501, typeof(DogBarkedEvent2));
如果我创建一个新模型并尝试反序列化
model2.Add(typeof(IMessage), false).AddSubType(8655, typeof(DogBarkedEvent));
model2.Add(typeof(IMessage), false).AddSubType(5300, typeof(DogBarkedEvent2));
它肯定会失败。
我不知道运行时会有多少子类型,这就是为什么我担心下次启动应用程序时顺序可能会改变。
我已经阅读了这篇之前的帖子protobuf-net v2 type meta,但它并没有说明如何生成有关 UniqueIdentifier 的好方法。