DefaultValue属性反序列化

时间:2013-05-20 12:50:22

标签: protobuf-net

我正在尝试使用默认值属性将流反序列化为对象,而protobuf-net只是在流中缺少此属性时才会对其进行处理。我需要在反序列化所有属性之前手动设置它们的默认值还是那个?

1 个答案:

答案 0 :(得分:3)

DefaultValues行为(不仅仅是在protobuf-net中 - System.ComponentModel 通常,例如PropertyGridPropertyDescriptor等)这用于指示不需要被序列化的内容,因为它们将自动默认为相同的值。因此,它假定如果您的代码注释DefaultValue,那么您的代码将分配这些默认值。这可以在构造函数,字段初始化器或预反序列化回调中(支持所有4个标准回调点)。

从技术上讲,在反序列化之前,库不可能显式地分配这些值 - 但仅仅是:那不是当前编码的内容。