我想使用protobuf-net作为客户端和服务器之间的网络套接字通信的协议。
消息可以有大约十几种不同的类类型(它们都扩展相同的基类)。是否可以在知道确切类型之前对消息进行解码?如何实现?
预先感谢
答案 0 :(得分:0)
听起来像我想要的:
[ProtoContract]
[ProtoInclude(1, typeof(Foo)]
...
[ProtoInclude(N, typeof(Bar)]
class SomeBase {}
[ProtoContract]
class Foo : SomeBase {...}
...
[ProtoContract]
class Bar : SomeBase {...}
然后使用Deserialize<SomeBase>(...)
。这将以“ .proto”术语映射为oneof
区分的联合。