是否可以在同一个xml文件中序列化由不同类创建的对象?

时间:2011-12-05 16:40:16

标签: c# xml serialization .net-3.5

例如,我获得了课程Header和课程Dog。 我想要一个看起来像这样的文件:

enter image description here

到目前为止,我没有看到执行此操作的示例。我必须使用 serializer.Serialize因为我收集了数千个 对象。否则将花费太长时间。

如果不可能,我会制作两个不同的文件,一个用 标题和另一个与对象的集合,但它不是一个 有趣的解决方案。

修改
我不能使用包装,因为我没有完整的狗列表 开始。我当时收到一个,直到我停止申请

非常感谢!

2 个答案:

答案 0 :(得分:3)

您需要创建另一个可以代表此类的类。例如。

public class Kennel
{
    public Header Header { get; set; }
    public List<Dog> Dogs { get; set; }
}

然后可以轻松地对其进行序列化/反序列化。

回答你的问题。如果您需要XML与您的XML相同,则需要创建一个自定义包装器,以便将XML读取和写入该特定格式。

答案 1 :(得分:0)

我会考虑制作一个包含Header对象和类型DogWrapper的列表(或数组,或其他)的自定义包装类(称为Dog或其他东西)。然后使用自定义序列化来定义如何写出该对象。

然后你只需将你的标题和狗编组到DogWrapper中,并序列化DogWrapper。