我有类似以下需要反序列化的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类。
答案 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