【发布时间】:2020-05-20 11:03:45
【问题描述】:
我的模型类是:
public class Group
{
public Employee Employee {get;set;}
}
public class Employee {
public string Name {get;set;}
}
所以在序列化之后我的 xml 看起来像这样:
<Group>
<Employee>
<Name>Haley</Name>
</Employee>
</Group>
但我希望它是:
<Group>
<Name>Haley</Name>
</Group>
那么是否有任何属性等来实现这一点?我知道我可以使用一些代码来做到这一点,但如果有一些更简单的解决方案会很好。我看到了列表和数组的解决方案(使用 [XmlElement] 属性),但看起来它不适用于非集合属性。
【问题讨论】:
-
您可以通过将
[XmlElement("Name")]添加到public Employee Employee {get;set;}将<Employee>重命名为<Name>,如Serialize/Deserialize different property names? 所示,它们通过标记Name将类Employee序列化为字符串值使用[XmlText],如C# - Xml Element with attribute and node value 所示。这就是你想要的吗? -
我不这么认为,因为如果里面有多个属性怎么办?比如姓名、姓氏、电话等?然后我不能使用属性就像
[XmlElement("Name")] -
那你能澄清一下你的问题吗?你是说
Employee可能有多个属性并且你想将它们全部冒泡到父级? -
无论如何,我认为没有办法在不使用代码的情况下将多个元素冒泡到父节点——例如代理属性或 DTO。
-
好吧,我是这么认为的。那就谢谢了。
标签: c# .net xml serialization xml-serialization