
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中序列化列表(对象是哪些对象是支持的基元)?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)