具有数组属性的对象的Xml序列化

时间:2014-06-18 13:55:53

标签: c# .net xml serialization

在下面的组成中,请注意序列化属性是小写的,并且根中的数组属性相应地序列化,但其子元素不符合此修饰。

我说这个:

<engine>
  <servos>
    <servo>
    </servo>
  </servos>
</engine>

但我得到了这个:

<engine>
  <servos>
    <Servo> <!-- here is the problem-->
    </Servo>
  </servos>
</engine>

代码:

    [XmlRoot( "engine" )]
    public class Engine {

    [XmlArray( "servos" )]
    public List<Servo> Servos { 
        get { return servos; } 
        set { servos = value; } 
        }
    }

    [XmlRoot( "servo" )] //Child ignoring lowercase decoration 
    public class Servo {
    }

如属性所示,序列化的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您必须将XmlArrayItem属性添加到Servos属性:

 [XmlArrayItem( "servo" )]
 [XmlArray("servos")]
 public List<Servo> Servos { 
     get;
     set ;
     }
 }