首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Protobuf-Net ProtoMember "IsRequired“属性用法

Protobuf-Net ProtoMember "IsRequired“属性用法
EN

Stack Overflow用户
提问于 2011-08-26 04:41:03
回答 1查看 2.5K关注 0票数 8

Protobuf-Net ProtoMember "IsRequired“属性的用法是什么?

如果我将一个新的属性(成员)添加到文件中已经序列化的类中,会有什么影响。如果我使用"IsRequired=true“,它会接受它而不加载值(因为它不在那里),还是我应该将值设置为false?如果我将其设置为false,该值是否会被正确序列化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-12 07:22:21

根据的说法

目前,IsRequired主要影响serialization,,迫使它忽略一些默认规则。

当IsRequired为false (默认值)时,不序列化默认值,例如,0的整数值不会序列化,1的值将不序列化。

当IsRequired为true时,所有值(包括默认值)都将被序列化。

使用protobuf-net的反序列化目前似乎不受IsRequired属性值的影响。但是,如果您使用不同的Google Protocol Buffers实现进行反序列化,您可能会看到不同的行为。

如果向现有类添加新属性,并反序列化在添加该属性之前编写的序列化文件,则不会设置新属性。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7196905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档