为了账号安全,请及时绑定邮箱和手机立即绑定

如何将Property首字母大写?

如何将Property首字母大写?

湖上湖 2018-12-06 23:23:53
有如下的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 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

你可以把属性申明成大写开头,但是在 XmlElement 或 XmlArrayItem 里把序列化名称设置为小写开头。

查看完整回答
反对 回复 2019-01-21
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

我们公司的代码规范,xml属性名第一个单词小写,C#属性第一个单词大写。

查看完整回答
反对 回复 2019-01-21
?
慕容708150

TA贡献1831条经验 获得超4个赞

@沧海一杰: 反序列化之前做一下替换啊,没让你把xml文件中的小写也替换掉啊

查看完整回答
反对 回复 2019-01-21
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

我怎么看你自己写的代码里面,把属性改为首字母大写完全可以正常运行的呀,你说“想把MenuItem中的children属性的首字母大写,即改成Children,但如果大写就无法反序列化出子节点”,这种情况根本不存在,你再试试看。

查看完整回答
反对 回复 2019-01-21
?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

可以运行是可以运行,但Children=null,children就不会是null

查看完整回答
反对 回复 2019-01-21
?
守着一只汪

TA贡献1872条经验 获得超3个赞

设置 要序列化的父节点和子节点  [XmlArray,XmlArrayItem]

 [XmlArray("children"), XmlArrayItem("menu", typeof(MenuItem), Form = XmlSchemaForm.Unqualified, IsNullable = false)]
public MenuItem[] Children { get; set; }
查看完整回答
反对 回复 2019-01-21
  • 8 回答
  • 0 关注
  • 381 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信