[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>
答案 0 :(得分:0)
我认为你不能这样做。 XML的结构告诉序列化器如何工作。如果您在父对象中将属性标记为名为name
的属性,那么序列化程序将不知道要使用哪个name
。
答案 1 :(得分:0)
您应该调整类结构以反映您想要的xml。如果“name”只是元素“tree”的一个属性,那么理想情况下你会将字符串“name”作为类“XY”的属性,而类“XX”根本不存在。
如果你真的需要这些类现在存在,那么我会建议创建一个第三类作为代理,它将具有与你的xml匹配的结构,并在类XY中创建一个方法。将自己转化为你的新课程。然后序列化新类而不是XY和XX。