c# xml 序列化分组子节点中的元素

标签 c# xml serialization

我想将一些类字段序列化为一个组(一个子节点元素)。 例如:

[XmlRoot("person", Namespace = "", IsNullable = false)]
public class Person
{
    [XmlElement("male")]
    public bool Male { get; set; }

    [XmlElement("street")]
    public string Street { get; set; }

    [XmlElement("city")]
    public string City { get; set; }
} 

这将创建以下 XML:

<person>
 <male>true</male>
 <street>Some street</street>
 <city>City</city>
</person>

但我想分组(例如将街道和城市分组到一个子元素中),而不需要创建一个额外的子类来保存这两个属性。

 <person>
     <male>true</male>
     <address>
       <street>Some street</street>
       <city>City</city>
     </address>
 </person>

最佳答案

您可以“手动”序列化,即写入 XDocument(甚至 XmlWriter)。

这使您可以完全控制格式。使用序列化程序意味着您放弃(大部分)控制权。

关于c# xml 序列化分组子节点中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7753648/

相关文章:

c# - "nullify"数组元素存在的空条件运算符

c# - 在 C# Datagridview 中以编程方式在指定位置添加新列

c# - TableAdapter.Update(数据集)未保存到 Ado.NET 中的数据库

c# - 我想安装Ubuntu或除Microsoft Windows以外的任何其他操作系统,请告诉我哪个操作系统最适合开发

javascript - IE9 拒绝处理 XML 响应

java - 使用 Java 验证 XSD

python - 似乎无法呈现 XML 或干净的字符

c# - 将对象动态转换为基类型

java - 实现类的接口(interface)引用的序列化在反序列化时失败

java - Xstream 在输出中插入奇怪的标签