Protobuf-Net ProtoMember "IsRequired“属性的用法是什么?
如果我将一个新的属性(成员)添加到文件中已经序列化的类中,会有什么影响。如果我使用"IsRequired=true“,它会接受它而不加载值(因为它不在那里),还是我应该将值设置为false?如果我将其设置为false,该值是否会被正确序列化?
发布于 2013-02-12 07:22:21
根据的说法
目前,IsRequired主要影响serialization,,迫使它忽略一些默认规则。
当IsRequired为false (默认值)时,不序列化默认值,例如,0的整数值不会序列化,1的值将不序列化。
当IsRequired为true时,所有值(包括默认值)都将被序列化。
使用protobuf-net的反序列化目前似乎不受IsRequired属性值的影响。但是,如果您使用不同的Google Protocol Buffers实现进行反序列化,您可能会看到不同的行为。
如果向现有类添加新属性,并反序列化在添加该属性之前编写的序列化文件,则不会设置新属性。
https://stackoverflow.com/questions/7196905
复制相似问题