我正在尝试通过将XML发布到WebApi POST方法来反序列化XML。除了具有多个子节点的节点外,一切正常并且反序列化没问题。
代码如下所示:
[Serializable]
public class grandparentnode
{
[XmlElement]
public parentnode[] parentnode { get; set; }
}
[Serializable]
public class parentnode
{
public childnode childnode { get; set; }
}
[Serializable]
public class childnode
{
public string foo { get; set; }
public string bar { get; set; }
public string baz { get; set; }
}
这是XML:
<grandparentnode>
<parentnode>
<childnode>
<foo>1</foo>
<bar>2</bar>
<baz>3</baz>
</childnode>
<childnode>
<foo>4</foo>
<bar>5</bar>
<baz>6</baz>
</childnode>
<childnode>
<foo>7</foo>
<bar>8</bar>
<baz>9</baz>
</childnode>
</parentnode>
</grandparentnode>
问题是,在调试时,我得到的只是parentnode[]
数组中的一个项目,如下所示:{WebApiListener.Controllers.FooBarBazController.parentnode[1]}
。我需要将parentnode作为childnode对象的数组。
知道为什么吗?
谢谢你,
彼得
答案 0 :(得分:1)
正如用户@Jobo指出的那样,我混淆了数组应该被反序列化的顺序。
这是修改后的代码:
[Serializable]
public class grandparentnode
{
public parentnode parentnode { get; set; }
}
[Serializable]
public class parentnode
{
[XmlElement]
public childnode[] childnode { get; set; }
}
[Serializable]
public class childnode
{
public string foo { get; set; }
public string bar { get; set; }
public string baz { get; set; }
}