使用 ProtoBuf-Net 在网络上自描述消息
Self describing messages on network with ProtoBuf-Net
我想使用 protobuf-net 作为客户端和服务器之间的网络套接字通信协议。
一条消息可以有大约十几种不同的 class 类型(它们都扩展了相同的基础 class)。是否可以在知道确切类型之前解码消息?如何实现?
提前致谢
听起来像你想要的:
[ProtoContract]
[ProtoInclude(1, typeof(Foo)]
...
[ProtoInclude(N, typeof(Bar)]
class SomeBase {}
[ProtoContract]
class Foo : SomeBase {...}
...
[ProtoContract]
class Bar : SomeBase {...}
然后使用Deserialize<SomeBase>(...)
。这将被映射为“.proto”术语中的oneof
discriminated union。
我想使用 protobuf-net 作为客户端和服务器之间的网络套接字通信协议。
一条消息可以有大约十几种不同的 class 类型(它们都扩展了相同的基础 class)。是否可以在知道确切类型之前解码消息?如何实现?
提前致谢
听起来像你想要的:
[ProtoContract]
[ProtoInclude(1, typeof(Foo)]
...
[ProtoInclude(N, typeof(Bar)]
class SomeBase {}
[ProtoContract]
class Foo : SomeBase {...}
...
[ProtoContract]
class Bar : SomeBase {...}
然后使用Deserialize<SomeBase>(...)
。这将被映射为“.proto”术语中的oneof
discriminated union。