我为用户输入编写了一个基本设置存储类,该类从XML文件加载和保存数据。当xml具有所有正确的值时,它会很好用。
但是,其中一个值是在版本更新中更改了某些接受值的枚举。因此,某些用户拥有的XML设置文件不再与最新版本兼容。
因为我知道此输入的所有可能的先前值,所以当解串器遇到这些值之一时,是否有可能将其读取为其他值?
public class UserInput
{
//... long list of variables
//enum that had its values changed from prior versions but still has the same name
public MyEnum UserType { get; set; }
private static XmlSerializer xs;
static UserInput()
{
xs = new XmlSerializer(typeof(UserInput));
}
public void SaveToFile(string fileName)
{
using (StreamWriter sr = new StreamWriter(fileName))
{
xs.Serialize(sr, this);
}
}
public static UserInput ReadFromFile(string fileName)
{
using (StreamReader sr = new StreamReader(fileName))
{
return xs.Deserialize(sr) as UserInput;
}
}
}
我希望我可以在上面的代码中插入一个检查,以便遇到更改的枚举时可以将其作为有效值加载。