我有一个枚举,它描述了可供用户选择作为设置的一部分的选项。这被序列化为 XML。其中一个名字不太理想,我想重命名它,但仍然支持旧设置文件的反序列化。
例如:
public enum Options
{
Odd,
NonOdd // rename to 'Even'
}
我知道我可以重命名它但指定以前的序列化名称如下:
public enum Options
{
Odd,
[XmlEnum(Name = "NonOdd")]
Even
}
虽然这有效,但它继续在 XML 文件中使用 NonOdd
,我不想这样做。
有没有办法支持反序列化当前和已弃用的枚举名称,但序列化为当前名称?
最佳答案
这是我会做的:
- 在设置文件中添加版本号。
- 编写将旧版本 XML 文件转换为当前版本的代码。
- 更新枚举并增加版本号。
一旦有了这个结构,您就可以根据需要多次重命名枚举元素。
关于c# - 如何重命名序列化为 XML 但继续支持以前名称的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42493998/