我有两个类,A和B。A有一个B的实例,当序列化A时,我希望B与A处于同一级别,而不是子元素。
所以我希望得到的xml变成
<a>
<avalue>a</avalue>
<bvalue>b</bvalue>
</a>
这个程序把B放在它自己的元素中
<a>
<avalue>a</avalue>
<b>
<bvalue>b</bvalue>
</b>
</a>
public class A
{
public string avalue = "a";
public B b = new B();
}
public class B
{
public string bvalue = "b";
}
class Program
{
static void Main(string[] args)
{
var a = new A();
var xml = new XmlSerializer(a.GetType());
xml.Serialize(new StreamWriter(@"c:\temp\tmp.xml"), a);
}
}
附言:这肯定是以前问过的,但我不知道该找什么。我的谷歌地图是空的…
编辑:
如果可能的话,我希望避免使用“包装器”解决方案:
public class A
{
public string avalue = "a";
[XmlIgnore]
public B b { get; set; }
[XmlElement("bvalue")]
public string bvalue
{
get { return b.bvalue; }
set { b.bvalue = value; }
}
}