0
我需要反序列化/序列化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;
}
枚舉進入XML作爲一種價值,而不是元素名稱:
<color>
<name>green</name>
</color>
有沒有什麼辦法讓寫進XML枚舉值元素名稱(請參閱第一個XML片段 - 這是目標),而不是XML元素值,而不必重新鍵入所有值(它是一個非常大的集合)作爲空類名稱,或訴諸自定義序列化喜歡避免它,因爲序列化的類包含很多其他成員,默認情況下它們是完美序列化的)?
(我無法更改架構,它是第三方)。