我需要反序列化/序列化如下所示的 XML:
<color>
<green/>
</color>
<green/>
可能在哪里<red/>
,<blue/>
等等 - 非常大(但有限)的集合。
我想在我的代码中将其描述为简单的枚举:
enum ColorName
{
[XmlEnum("red")]
Red,
[XmlEnum("green")]
Green,
[XmlEnum("blue")]
Blue,
...
etc.
}
但是,如果我这样写我的对象模型:
class Color
{
[XmlElement("name")]
public ColorName ColorName;
}
class Something
{
[XmlElement("color")]
public Color Color;
}
enum 作为值而不是元素名称进入 XML:
<color>
<name>green</name>
</color>
有没有办法将枚举值写入 XML 元素名称(请参阅第一个 XML 片段 - 这是目标),而不是 XML 元素值,而无需将所有值(这是一个非常大的集合)重新键入为空类名称,还是求助于自定义序列化(我想避免它,因为序列化的类包含很多其他成员,默认情况下它们是完全序列化的)?
(我无法更改架构,它是第三方的)。