Default entries on a first time creation for a serialized class

Posted by MGSoto on Stack Overflow See other posts from Stack Overflow or by MGSoto
Published on 2010-03-25T23:35:39Z Indexed on 2010/03/26 13:13 UTC
Read the original article Hit count: 239

Filed under:
|
|
|
|

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>

© Stack Overflow or respective owner

Related posts about c#

Related posts about .NET