views:

46

answers:

2

I have a class I am using for serializing various configuration options for an application I am working on. I'm adding a new property to the class that is a List, and I'd like it to fill this list if it does not exist already in a XML file. My first thought was to check if the list contained zero items, however this is not acceptable because there are times I want to have zero items in the list. In essence I want a file that has been serialized with an older version of the same class to be "upgraded" and have defaults automatically inserted for new properties. How can I do this? For a more visual example of what I'm trying to do, see below:

When I deserialize an XML file that contains:

<Item1>wtfe</Item1>
<Item2>wtfe</Item2>

and after I've added a list property it will serialze as:

<Item1>wtfe</Item1>
<Item2>wtfe</Item2>
<Item3/>

I want it to serialize as:

<Item1>wtfe</Item1>
<Item2>wtfe</Item2>
<Item3>
   <DefaultSubItem/ Field="wtfe">
   <DefaultSubItem/ Field="wtfe">
</Item3>

But allow me to change it to:

<Item1>wtfe</Item1>
<Item2>wtfe</Item2>
<Item3></Item3>