C#Protobuf,提交通用类型信息

时间:2017-03-08 08:04:32

标签: c# serialization protocol-buffers

我想使用Protobuf序列化C#对象,通过网络发送它们并在“其他”端反序列化它们。

所以客户A有例如以下代码:

Serializer.Serialize<ClassA>(stream, instance);

现在,我希望能够传输类型信息“ClassA”。在接收方,客户B必须致电:

ClassA instance = Serializer.Deserialize<ClassA>(stream);

是否有一种直接传输通用类型信息的优雅方式?我能想到的另一种方法是定义一个巨大的枚举,包含所有可以序列化的类型,并将此信息与ClassA的实际实例一起放在包装类中。

非常感谢提示或可能的解决方案!

1 个答案:

答案 0 :(得分:0)

Json.Net可以将对象序列化为json,如果你给它正确的提示,它将通过二进制信息发送到另一端反序列化它。

如果你看一下这里的例子:http://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htm

他们使用List,其中T是通用参数。所以在你的情况下T会是别的,但原理是一样的。