【发布时间】:2020-07-10 17:32:24
【问题描述】:
我有以下课程:
[Serializable]
public class Message
{ public string messageSummary;
public DateTime messageDate;
}
后来,我决定在类中添加另一个 int 字段 - messageNumber
[Serializable]
public class Message
{
public string messageSummary;
public DateTime messageDate;
public int messageNumber;
}
在反序列化中,当反序列化旧的序列化 Message 类(没有 messageNumber 字段)时 - 如何将 messageNumber 的默认值设置为 -1 而不是 0?
我试图定义一个带有[OnDeserialized()]属性的方法,但是messageNumber已经设置为0。0也可以是messageNumber的值,所以我不能在那个方法中覆盖它。
是否可以将默认值设置为-1?
谢谢
【问题讨论】:
-
你为什么不使用 DefaultValueAttribute stackoverflow.com/questions/2329868/net-defaultvalue-attribute ?在您的情况下,是否可以使用属性而不是字段?
标签: c# .net serialization deserialization binaryformatter