如何将对象序列化为XML?

3
如何将两个对象,Class A 和 Class B,序列化为 XML,使其格式如下:
<root>
<objClassA> //Parent Node
  <objClassB> // child node of objClassA
  </objClassB>
</objClassA>
</root>
2个回答

1
[Serializable(true)]
public class objClassB
{
}

[Serializable(true)]
public class objClassA
{
    public objClassB instance;
}

然后使用XmlSerializer对objClassA的实例进行处理,它会自动将b的实例作为其子元素放置在内部。


但是,我不需要在A类中使用B类的实例。我只需要按照上述格式构建XML。还有其他方法吗? - NewBie
你需要自己进行序列化(定制)。 - Jake Berger
在这种情况下,您需要在类上实现IXmlSerializable接口并添加WriteXml和ReadXml方法。在其中,您可以添加任何所需的子元素。 - Phil Wright

1
using System;
using System.IO;
using System.Xml.Serialization;
void Write(root rootInstance) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(root)); using (FileStream fileStream = new FileStream("filepath.xml", FileMode.Create)) { xmlSerializer.Serialize(fileStream, rootInstance); } } public class root { public ClassA objClassA { get; set; } } public class ClassA { public ClassB objClassB { get; set; } } public class ClassB { }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接