c#中枚举的xml序列化
发布时间:2020-12-15 21:34:21 所属栏目:百科 来源:网络整理
导读:那里. 我有以下类定义: [Serializable]public enum FilterType{ [XmlEnum("1")] Text = 1,[XmlEnum("2")] Date = 2,[XmlEnum("3")] Combo = 3,[XmlEnum("4")] Multichoice = 4}public class FilterValues : Liststring{ public FilterType Type { get; set;
那里.
我有以下类定义: [Serializable] public enum FilterType { [XmlEnum("1")] Text = 1,[XmlEnum("2")] Date = 2,[XmlEnum("3")] Combo = 3,[XmlEnum("4")] Multichoice = 4 } public class FilterValues : List<string> { public FilterType Type { get; set; } } [Serializable] public struct SerializableKeyValuePair<K,V> { public SerializableKeyValuePair(KeyValuePair<K,V> p) { this.key = p.Key; this.value = p.Value; } private K key; public K Key { get { return key; } set { key = value; } } private V value; public V Value { get { return this.value; } set { this.value = value; } } } 当我尝试序列化时,我无法使它在xml中序列化Type属性 <?xml version="1.0" encoding="utf-16"?> <ArrayOfSerializableKeyValuePairOfStringFilterValues xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SerializableKeyValuePairOfStringFilterValues> <Key>Date</Key> <Value> <string>2012-5-16</string> </Value> </SerializableKeyValuePairOfStringFilterValues> <SerializableKeyValuePairOfStringFilterValues> <Key>bgName</Key> <Value> <string>4</string> </Value> </SerializableKeyValuePairOfStringFilterValues> </ArrayOfSerializableKeyValuePairOfStringFilterValues> 请帮忙,我尽力了. 解决方法
它与这个问题有关:
When a class is inherited from List<>,XmlSerializer doesn’t serialize other attributes
因此,正如在回答该问题时所指出的那样,您必须以至少三种可能的方式之一更改FilterValues实现: -implement IXmlSerializable -remove inheritance from List -use another serializer (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |