在MSDN上写下
通过应用,可以将字段标记为可选 OptionalFieldAttribute属性。在反序列化期间,如果 缺少可选数据,序列化引擎忽略了 缺席并且不会抛出异常。
我无法获得例外。我尝试创建一个类,使用SerializableAttribute标记它,使用BinaryFormatter序列化一个对象并将状态保存到磁盘上的文件,然后向我的类添加两个字段,我没有用OptionalFieldAttribute标记,并尝试反序列化对象回来,我只是坚持到磁盘。我很惊讶没有抛出异常?
答案 0 :(得分:6)
引用的MSDN页面没有提到这一点,但默认行为是在这种情况下不会抛出异常。如果需要例外,您必须将AssemblyFormat
的{{1}}属性设置为
BinaryFormatter
默认值为
System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full
可以找到更多信息here。