C# 可以在同一个xml文件中序列化来自不同类的对象吗?

C# 可以在同一个xml文件中序列化来自不同类的对象吗?,c#,xml,serialization,.net-3.5,C#,Xml,Serialization,.net 3.5,例如,我得到了类标题,以及类狗。 我想要一个如下所示的文件: 到目前为止,我还没有看到这样的例子。我必须使用 serializer.Serialize因为我收集了数千个 物体。否则会花费太长时间 如果不可能,我将制作两个不同的文件,一个带有 标头和另一个包含对象集合,但它不是 有趣的解决方案 编辑: 我不能用包装纸,因为我现在没有完整的狗名单 开始我一次收到一个,直到我停止申请 非常感谢 您需要创建另一个类来表示这一点。比如说 public class Kennel { public

例如,我得到了类
标题
,以及类
。 我想要一个如下所示的文件:

到目前为止,我还没有看到这样的例子。我必须使用
serializer.Serialize
因为我收集了数千个 物体。否则会花费太长时间

如果不可能,我将制作两个不同的文件,一个带有 标头和另一个包含对象集合,但它不是 有趣的解决方案

编辑:
我不能用包装纸,因为我现在没有完整的狗名单 开始我一次收到一个,直到我停止申请


非常感谢

您需要创建另一个类来表示这一点。比如说

public class Kennel
{
    public Header Header { get; set; }
    public List<Dog> Dogs { get; set; }
}
公共级犬舍
{
公共标头{get;set;}
公共列表狗{get;set;}
}
然后可以轻松地对其进行序列化/反序列化


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

您需要创建另一个类来表示这一点。比如说

public class Kennel
{
    public Header Header { get; set; }
    public List<Dog> Dogs { get; set; }
}
公共级犬舍
{
公共标头{get;set;}
公共列表狗{get;set;}
}
然后可以轻松地对其进行序列化/反序列化


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

我将考虑创建一个自定义包装类(称之为:
DogWrapper
或其他什么),它包含一个Header对象和一个类型为
Dog
的列表(或数组,或其他)。然后使用自定义序列化定义如何写出该对象


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

我将考虑创建一个自定义包装类(称之为:
DogWrapper
或其他什么),其中包含一个头对象和一个类型为
Dog
的列表(或数组,或其他)。然后使用自定义序列化定义如何写出该对象


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

我明白了,这是一个好主意。但问题是,每次收到一个元素时,我都需要添加一个元素。我不是一次写文档,而是一次写一个对象。首先,我需要添加我的标题,每秒钟添加一个新对象(本例中为dog)。最后,我关闭了我的文档。一开始我不会有完整的目标,是什么使它不可能。我不确定我是否理解。你有一个拥有头类和狗列表的类。您可以随时添加到此列表,然后在需要时将其序列化为xml文件。如果您需要多个犬舍,那么创建另一个具有列表的类并序列化它。我不会在最后序列化它,我希望在收到狗后立即进行序列化。如果应用程序失败,我不会丢失所有数据。如前所述,您可以随时序列化/保存。我试图查看是否存在某种误解,但我不想提供列表,因为我的数据非常庞大。我不想污染记忆。一旦将对象写入xml文件,它就会被留下。每次我得到一条狗时,我想在我的文件中写一条狗,而不是在我的列表完成后。让您了解一下,我的xml文件可能不止一个gig重。我不会把整件事都列在清单上。我会用艰苦的方式编写xml,而不是这样做。谢谢你的帮助,但我相信我必须继续搜索。我明白了,这是个好主意。但问题是,每次收到一个元素时,我都需要添加一个元素。我不是一次写文档,而是一次写一个对象。首先,我需要添加我的标题,每秒钟添加一个新对象(本例中为dog)。最后,我关闭了我的文档。一开始我不会有完整的目标,是什么使它不可能。我不确定我是否理解。你有一个拥有头类和狗列表的类。您可以随时添加到此列表,然后在需要时将其序列化为xml文件。如果您需要多个犬舍,那么创建另一个具有列表的类并序列化它。我不会在最后序列化它,我希望在收到狗后立即进行序列化。如果应用程序失败,我不会丢失所有数据。如前所述,您可以随时序列化/保存。我试图查看是否存在某种误解,但我不想提供列表,因为我的数据非常庞大。我不想污染记忆。一旦将对象写入xml文件,它就会被留下。每次我得到一条狗时,我想在我的文件中写一条狗,而不是在我的列表完成后。让您了解一下,我的xml文件可能不止一个gig重。我不会把整件事都列在清单上。我会用艰苦的方式编写xml,而不是这样做。谢谢你的帮助,但我相信我必须继续寻找。