![](/img/trans.png)
[英]How to serialize xml array AND class properties using C# XML serialization
[英]C# Xml Serialization: Serialize Class properties as attributes to the parent class
[Serializable]
public class XX
{
[XmlAttribute("name")]
public string name{get;set;}
}
[Serializable]
[XmlRoot("tree")]
public class XY
{
public XX Name{get;set;}
[XmlAttribute("surname")]
public Surname{get;set;}
}
嗨,我正在尝试将类似上述这些类的内容序列化为XML。 我的问题是,XX类的属性应该序列化为XY类的序列化属性,而不是XmlElement。 有人知道这是否可行吗? 这里要澄清的是应产生的xml文件的示例:
<tree name="Jack" surname="Thompson">
</tree>
我不想要这样:
<tree surname="Thompson">
<name>Jack</name>
</tree>
我认为您无法做到这一点。 XML的结构告诉串行器如何工作。 如果您在父对象中将一个属性标记为名为name
的属性,该序列化程序将不知道要使用哪个name
。
您可能应该调整类结构以反映所需的xml。 如果“名称”只是元素“树”的属性,那么理想情况下,字符串“名称”应为类“ XY”的属性,而类“ XX”根本不存在。
但是,如果您真的需要像现在这样存在这些类,那么我建议创建第三个类以充当代理,该类具有与您的xml匹配的结构,并在XY类中创建一个将自身翻译的方法进入新班级。 然后序列化新类,而不是XY和XX。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.