我有一个要序列化为 xml 的类。我想在生成的 xml(元素中的一个元素)中将其中一个属性向下移动一个级别,而不改变类的结构。是否可以使用 XmlSerializer 来做到这一点?
一个例子:
生成的xml:
<Person>
<firstname xmlns=\"http://myschema.com\">John</firstname>
<postcode xmlns=\"http://myschema.com\">N1 0XE</postcode>
</Person>
所需的xml:
<Person>
<firstname xmlns=\"http://myschema.com\">John</firstname>
<address>
<postcode xmlns=\"http://myschema.com\">N1 0XE</postcode>
</address>
</Person>
编码:
[Serializable]
[XmlType(Namespace = "http://myschema.com")]
public class Person
{
[XmlElement("firstname")]
public string FirstName { get; set; }
[XmlElement("postcode")]
public string Postcode { get; set; }
}
序列化器:
var xmlSerializer = new XmlSerializer(typeof(Person));
var stringWriter = new StringWriter();
var xmlWriter = XmlWriter.Create(stringWriter);
xmlSerializer.Serialize(xmlWriter, person);