我想使用Protobuf序列化C#对象,通过网络发送它们并在“其他”端反序列化它们。
所以客户A有例如以下代码:
Serializer.Serialize<ClassA>(stream, instance);
现在,我希望能够传输类型信息“ClassA”。在接收方,客户B必须致电:
ClassA instance = Serializer.Deserialize<ClassA>(stream);
是否有一种直接传输通用类型信息的优雅方式?我能想到的另一种方法是定义一个巨大的枚举,包含所有可以序列化的类型,并将此信息与ClassA的实际实例一起放在包装类中。
非常感谢提示或可能的解决方案!
答案 0 :(得分:0)
Json.Net可以将对象序列化为json,如果你给它正确的提示,它将通过二进制信息发送到另一端反序列化它。
如果你看一下这里的例子:http://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htm
他们使用List,其中T是通用参数。所以在你的情况下T会是别的,但原理是一样的。