如何在多个根的c#中反序列化XML?

时间:2017-12-10 12:38:46

标签: c# xml list serialization

我有一个“xml”文件,如下所示:

<root>
 <a>
  <b>
  </b>
 </a>
</root>
<root>
 <a>
  <b>
  </b>
 </a>
</root>
<root>
 <a>
  <b>
  </b>
 </a>
</root>
....

是使用序列化方法在对象列表上创建的。所以我有匹配的类来反序列化它。

现在,当我尝试反序列化时,我得到了多个根的错误。 有没有办法再次将此文件反序列化为对象列表?

我的一个想法是围绕列出的类包装另一个类,并将其称为“rootclass”,而不仅仅是序列化这个类。这将导致单个根。但是,只有给定的XML文件才能实现吗?

我的反序列化看起来像这样:

static public List<CT> DeSerialize(string FileName)
    {
        XmlSerializer deserializer = new XmlSerializer(typeof(List<CT>), new XmlRootAttribute("root"));
        List<CT> result;

        using (FileStream fileStream = new FileStream(@FileName, FileMode.Open))
        {
            result = (List<CT>)deserializer.Deserialize(fileStream);
        }

        return result;
    }

1 个答案:

答案 0 :(得分:0)

你有片段所以使用XmlReader并将设置设置为片段:

width