【问题标题】:C# Protobuf, submitting generic type informationC# Protobuf,提交泛型类型信息
【发布时间】:2017-03-08 08:04:32
【问题描述】:

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

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

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

现在,我也希望能够传输“ClassA”的类型信息。在接收端,客户端 B 必须调用:

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

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

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

【问题讨论】:

    标签: c# serialization protocol-buffers


    【解决方案1】:

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

    如果您查看此处的示例:http://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htm

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多