如何在没有重复的情况下将默认值添加到XmlSerialized列表?

时间:2012-02-24 21:19:58

标签: c# xml-serialization

我已经遇到过这个问题几次,并为它提供解决方案,但没有我喜欢的解决方案。考虑有一个类:

public class MyData
{
     public List<string> Values = new List<string>();

}

假设我总是希望Value至少有一个值,这个值应该是“Default”。构造函数可能是:

public MyData()
{
    Values.Add("Default");
}

这可以保证新实例始终至少具有“默认”条目。问题是如果我XmlSerialize一个新实例,它将使用Values中的“Default”值进行序列化。这本身就没问题,但是当我反序列化它时,默认值会在我的构造函数中添加,然后再次通过反序列化,导致“Default”的重复值。

就像我上面提到的,我做了一些特殊的事情,比如制作Load和Save方法,在内部进行序列化并检查重复项,但如果有人序列化/反序列化实例而不通过这些方法,则可能会很危险。以前有没有人遇到过这个问题?有没有标准的解决方法?

0 个答案:

没有答案