序列化列表中的丢失属性<>继承了阶级

时间:2013-09-12 13:28:34

标签: c# wcf serialization datacontractserializer xmlserializer

我正在使用WCF。我有以下模型类。当对象序列化列表cIntList属性Name丢失时。我在这里找到了答案: When a class is inherited from List<>, XmlSerializer doesn't serialize other attributes。 但是,对我来说,不构建容器类很重要,只修改相同的序列化。任何人都可以帮我修改课程,以使其序列化符合我的期望吗?

   public class IntData
    {
        public int Value;
        public IntData()
        {
        }
    }

    public class cIntList : List<IntData>
    {
        public string Name;

        public cIntList()
        {
            Name = "Name";
            this.Add(new IntData() { Value = 1 });
            this.Add(new IntData() { Value = 2 });
        }
    }

1 个答案:

答案 0 :(得分:1)

如果您更改了类,它也将序列化名称字段。

public class cIntList
{
    public string Name{ get; set; }

    [XmlElement("")]
    public List<IntData> IntList{ get; set; }

    public cIntList()
    {
        Name = "Name";
        IntList = new List<IntData>();
        IntList.Add(new IntData() { Value = 1 });
        IntList.Add(new IntData() { Value = 2 });
    }
}

您可以根据所需的xml更改或删除XmlElement属性。