如何将缺少的布尔字段反序列化为TRUE

时间:2010-10-04 11:15:48

标签: vb.net xmlserializer serialization

我正在使用XmlSerializer将自定义对象从文件反序列化到我的应用中的对象。 我的问题是我希望对象中的字段默认为“True”而不是“False”表示我正在反序列化的文件中不存在的新属性。

默认情况下,.Net将此值指定为false,因为它在文件中不存在,并且如果它不存在,我希望它默认为True。我在对象定义中的字段上使用了 System.ComponentModel.DefaultValue(True)属性,但这不起作用。有谁知道怎么做?

2 个答案:

答案 0 :(得分:1)

您可以直接在对象的空构造函数中设置布尔值。这样,反序列化器将在布尔值中创建带有true的反序列化对象。

答案 1 :(得分:0)

由于某种原因,当我反序列化另一个具有布尔属性的对象类的字段时,这对我不起作用。也许我错过了一些东西,但我只是做了布尔可空(bool?),并且在反序列化后,如果它为null,则将布尔值设置为true。