根据MSPRESS书(MCTS的考试70-536 .NET 2.0):反序列化对象的新成员
你可能有版本的兼容性问题,如果你曾经尝试反序列化已经序列化的对象您的应用程序的早期版本。具体来说,如果您将成员添加到自定义类并试图反序列化缺少该成员的对象,则运行时将引发异常。换句话说,如果您将某个成员添加到应用程序3.1版中的某个类中,它将无法反序列化由应用程序3.0版创建的对象。
Now ...和我一样好奇,我创建了一个项目,序列化了一个类,添加了一个新成员,并尝试将该类反序列化为新对象。令我惊讶的是,它的工作原理和新创建的成员默认设置为空(即使它有另一个默认值)。
我首先尝试添加一个字符串作为新成员,看到工作,然后我改变它到另一个自定义类,它仍然工作。
mspress错了吗?或者这种行为是否可定制?
请注意,我是不是使用XML序列化。我正在使用BinaryFormatter序列化。
你使用了哪种序列化?AFAIK一些形式像二进制有这个问题,而其他形式如XML不。 – Mehrdad 2011-01-23 20:37:32
我正在使用BinaryFormatter序列化。 – PedroC88 2011-01-23 20:57:49