【发布时间】:2010-03-25 23:35:39
【问题描述】:
我有一个类用于序列化我正在处理的应用程序的各种配置选项。我正在向作为 List 的类添加一个新属性,如果它在 XML 文件中不存在,我希望它填充这个列表。我的第一个想法是检查列表是否包含零项,但是这是不可接受的,因为有时我希望列表中包含零项。本质上,我希望将已使用同一类的旧版本序列化的文件“升级”并为新属性自动插入默认值。我怎样才能做到这一点?有关我正在尝试做的更直观的示例,请参见下文:
当我反序列化包含以下内容的 XML 文件时:
<Item1>wtfe</Item1>
<Item2>wtfe</Item2>
在我添加了一个列表属性后,它将序列化为:
<Item1>wtfe</Item1>
<Item2>wtfe</Item2>
<Item3/>
我希望它序列化为:
<Item1>wtfe</Item1>
<Item2>wtfe</Item2>
<Item3>
<DefaultSubItem/ Field="wtfe">
<DefaultSubItem/ Field="wtfe">
</Item3>
但请允许我将其更改为:
<Item1>wtfe</Item1>
<Item2>wtfe</Item2>
<Item3></Item3>
【问题讨论】:
标签: c# .net xml serialization xml-serialization