加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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属性
SerializableKeyValuePair的数组,其键为string类型,值类型为FilterValues(SerializableKeyValuePair< string,FilterValues> []).
我得到了这个结果:

<?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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读