c# – 在Protobuf.NET中序列化列表(对象是哪些对象是支持的基元)?

c# – 在Protobuf.NET中序列化列表(对象是哪些对象是支持的基元)?,第1张

概述如何使用protobuf-net序列化一个这样的对象: public class MyObject{ public string Key {get; set;} public List<Object> Values {get; set;}} 当我尝试用TypeModel protobuf-net序列化它时,会抛出一个错误,指出它不知道如何序列化System.Object.现在我知道值 如何使用protobuf-net序列化一个这样的对象:
public class MyObject{   public string Key {get; set;}   public List<Object> Values {get; set;}}

当我尝试用TypeModel protobuf-net序列化它时,会抛出一个错误,指出它不知道如何序列化System.Object.现在我知道值只会包含原语(int,string,float,DateTime等).那么如何让protobuf-net知道这个?

解决方法 在任何意义上,这不是真正的纯ProtoBuf. ProtoBuf是强类型的,但不包含消息中的类型信息;类型信息始终在外部指定.因此有两个“好”的解决方案;也就是说,除了Protobuf-net(您可能或可能不在乎,但可以肯定)的原型实现之外,解决方案将很容易解释.

1:替换列表< object>列表< PrimitiveType>其中PrimitiveType包含与所有12个原始类型对应的可选字段(取决于您的“原始类型”的定义),并且您确保每个实例中只有一个填充.

2:替换列表< object>列表< int>,List< double>,List< string>的组合.等等

总结

以上是内存溢出为你收集整理的c# – 在Protobuf.NET中序列化列表(对象是哪些对象是支持的基元)?全部内容,希望文章能够帮你解决c# – 在Protobuf.NET中序列化列表(对象是哪些对象是支持的基元)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1259072.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存