有如下的XML及反序列化对象。问题是我想把MenuItem中的children属性的首字母大写,即改成Children,但如果大写就无法反序列化出子节点,请问有什么方法可以搞定?
<?xml version="1.0" encoding="utf-8" ?>
<menus>
<menu name="a">
<children>
<menu name="a1" />
<menu name="a2" />
<menu name="a3" />
</children>
</menu>
<menu name="b">
<children>
<menu name="b1" />
<menu name="b2" />
<menu name="b3">
<children>
<menu name="b31" />
<menu name="b32" />
<menu name="b33" />
</children>
</menu>
</children>
</menu>
</menus>
using System.Xml.Serialization;
using System.Xml.Schema;
[XmlRootAttribute(ElementName = "menus", Namespace = "", IsNullable = false)]
public class MenuItems
{
[XmlElementAttribute("menu", Form = XmlSchemaForm.Unqualified)]
public MenuItem[] Items { get; set; }
}
[XmlTypeAttribute(AnonymousType = true)]
public class MenuItem
{
[XmlAttributeAttribute("name")]
public string Name { get; set; }
[XmlArrayItemAttribute("menu", typeof(MenuItem), Form = XmlSchemaForm.Unqualified, IsNullable = false)]
public MenuItem[] children { get; set; }
}
8 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
我怎么看你自己写的代码里面,把属性改为首字母大写完全可以正常运行的呀,你说“想把MenuItem中的children属性的首字母大写,即改成Children,但如果大写就无法反序列化出子节点”,这种情况根本不存在,你再试试看。
守着一只汪
TA贡献1872条经验 获得超3个赞
设置 要序列化的父节点和子节点 [XmlArray,XmlArrayItem]
[XmlArray("children"), XmlArrayItem("menu", typeof(MenuItem), Form = XmlSchemaForm.Unqualified, IsNullable = false)] public MenuItem[] Children { get; set; }
- 8 回答
- 0 关注
- 423 浏览
添加回答
举报
0/150
提交
取消