反序列化数组元素

时间:2010-10-15 15:41:51

标签: c# .net xml xml-serialization

我有类似以下需要反序列化的xml(注意我无法更改XML):

<Root>
  <Products>
    <Product>1</Product>
    <Product>2</Product>
    <Product>3</Product>
  </Products>               
</Root>

以下是我尝试反序列化的方法:

[XmlRoot("Root")]
public class ProductsResponse
{
  [XmlElement("Products", typeof(MyProduct[]))]
  public MyProduct[] Products;
}

问题是它不会反序列化,因为当它到达Product时,它会将该元素名称与我的数组类型(MyProduct)进行比较。有什么方法可以反序列化到一个没有命名为Product的类中?我想尽可能避免重命名我的MyProduct类。

1 个答案:

答案 0 :(得分:2)

尝试使用XMLElement:http://msdn.microsoft.com/en-us/library/2baksw0z%28VS.71%29.aspx

稍后编辑: 我错了......使用XmlArray和XmlArrayItemAttribute

[XmlArray(ElementName = "Products")]
[XmlArrayItem("Product")]
    public MyProduct[] Products;

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlarrayattribute.aspx http://msdn.microsoft.com/en-us/library/2baksw0z%28VS.80%29.aspx

相关问题