我正在尝试使用默认值属性将流反序列化为对象,而protobuf-net只是在流中缺少此属性时才会对其进行处理。我需要在反序列化所有属性之前手动设置它们的默认值还是那个?
答案 0 :(得分:3)
DefaultValues
行为(不仅仅是在protobuf-net中 - System.ComponentModel
通常,例如PropertyGrid
,PropertyDescriptor
等)这用于指示不需要被序列化的内容,因为它们将自动默认为相同的值。因此,它假定如果您的代码注释DefaultValue
,那么您的代码将分配这些默认值。这可以在构造函数,字段初始化器或预反序列化回调中(支持所有4个标准回调点)。
从技术上讲,在反序列化之前,库不可能显式地分配这些值 - 但仅仅是:那不是当前编码的内容。