xmlSerialize两个不同对象的列表

时间:2014-04-01 07:56:14

标签: c# xml-serialization xmlserializer

我需要帮助来序列化两个列表并将它们写入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个root 我想要做的是只有一个根节点和我的两个列表。

1 个答案:

答案 0 :(得分:1)

为什么不创建一个既包含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);
}