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

c#xml序列化子节点中的分组元素,c#,xml,serialization,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; } [XmlElemen

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

[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)


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

为什么?只是为了混淆反序列化程序?我需要创建一个自定义XML输出,它不完全适合我的类结构。XML永远不会被反序列化,所以这很好;)或者在Person类上实现IXmlSerializable。