Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有数组属性的对象的Xml序列化_C#_.net_Xml_Serialization - Fatal编程技术网

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

C# 具有数组属性的对象的Xml序列化,c#,.net,xml,serialization,C#,.net,Xml,Serialization,在下面的组合中,请注意序列化属性是小写的,并且根中的数组属性被相应地序列化,但其子元素不支持此修饰 我看到了这一点: <engine> <servos> <servo> </servo> </servos> </engine> 但我得到的却是: <engine> <servos> <Servo> <!-- here is the proble

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

我看到了这一点:

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

但我得到的却是:

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

代码:

[XmlRoot(“引擎”)]
公共级引擎{
[XmlArray(“伺服”)]
公共列表服务器{
获取{返回伺服;}
设置{servos=value;}
}
}
[XmlRoot(“伺服”)]//忽略小写装饰的子级
公共级伺服{
}

按属性指示序列化的正确方法是什么?

您必须将XmlArrayItem属性添加到
伺服
属性:

 [XmlArrayItem( "servo" )]
 [XmlArray("servos")]
 public List<Servo> Servos { 
     get;
     set ;
     }
 }
[XmlArrayItem(“伺服”)]
[XmlArray(“伺服”)]
公共列表服务器{
得到;
设置
}
}

虽然@toATwork给出的答案有效,但我更喜欢这样,因为在这种情况下,属性XmlArrayItem的意图比XmlType更清楚。
 [XmlArrayItem( "servo" )]
 [XmlArray("servos")]
 public List<Servo> Servos { 
     get;
     set ;
     }
 }