xml序列化不同对象的两个列表

本文关键字:两个 列表 序列化 对象 xml | 更新日期: 2023-09-27 17:55:34

我需要帮助来序列化两个列表并将它们写入 xml 文件中。我尝试的代码是

XmlSerializer xs = new XmlSerializer(typeof(List<OtherAction>));
XmlSerializer xsActions = new XmlSerializer(typeof(List<Action>));
using (StreamWriter sw = new StreamWriter("actions.xml"))
{
   xs.Serialize(sw, listOtherActions);
   xsActions.Serialize(sw, listActions);
}

但它会先写 listOtherActions,然后是 listActions。所以它在 xml 文件上创建 2 个根我想做的是只有一个根节点和我的两个列表。

xml序列化不同对象的两个列表

为什么不创建一个具有两种 List 类型的类并序列化该类。 如下所示。

public class Combined
{
 public List<OtherAction> otherActions{get; set;}
 public List<Action> actions{get; set;}
}

XmlSerializer xs = new XmlSerializer(typeof(List<Combined>));
using (StreamWriter sw = new StreamWriter("CombinedActions.xml"))
{
   xs.Serialize(sw, listCombinedActions);
}