我需要反序列化在C#中的流動XML的XML元素反序列化,可能是不同類型的
<Show>
<status>Canceled</status>
</Show>
<Show>
<status>2</status>
</Show>
我的課是
[XmlRoot("Show")]`
public class Show
{
[XmlElement(ElementName = "status")]
public object status { get; set; }
}
和它的作品,但我想它反序列化到枚舉在這個例子中取消等於2
public enum ShowStatus
{
[XmlEnum("Canceled")]
Canceled = 2
}
有沒有辦法做到這一點,而不解析public object status { get; set; }
字符串值枚舉
感謝名單,我會做到這一點 – 2013-03-27 22:48:21
@Nevyn,你可以處理兩種類型的數據(字符串,整數),默認情況下,XmlSerializer的反序列化會該枚舉的字符串表示形式,但是如果要反序列化枚舉的int值,則可以使用'XmlEnum'並提供int值,現在它將處理字符串和整型值。 – 2013-03-27 23:03:14
@ sa_ddam213華友世界爲過度複雜但仍然可用的解決方案:-)。我其實並不知道它會將它們反序列化爲相同的枚舉。我確實知道序列化它們只會產生一個或另一個。*聳肩*好 – Nevyn 2013-03-27 23:16:35