c# – 在Protobuf.NET中序列化列表(对象是哪些对象是支持的基元)
发布时间:2020-12-15 06:36:22 所属栏目:百科 来源:网络整理
导读:如何使用protobuf-net序列化一个这样的对象: public class MyObject{ public string Key {get; set;} public ListObject 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>的组合.等等 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读