[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 序列化为XML。我的问题是 XX 类的属性应该序列化为 XY 类序列化的属性,而不是 XmlElement。有谁知道它是否可能??为了澄清一下,这里有一个应该生成的 xml 文件的示例:
<tree name="Jack" surname="Thompson">
</tree>
我不要这个:
<tree surname="Thompson">
<name>Jack</name>
</tree>
您可能应该调整类结构以反映所需的 xml。 如果"name"只是元素"tree"的一个属性,那么理想情况下,字符串"name"是类"XY"的属性,而类"XX"根本不存在。
但是,如果您确实需要这些类像现在一样存在,那么我建议您创建第三个类来充当代理项,该类将具有与您的 xml 匹配的结构,并在类 XY 中创建一种方法,该方法将自身转换为您的新类。然后序列化新类而不是 XY 和 XX。
我不认为你可以这样做。XML 的结构告诉序列化程序如何工作。如果在父对象中将属性标记为名为 name
的属性,则序列化程序将不知道要使用哪个name
。