C#XML序列化,我可以序列化List <t>吗?</t>

时间:2014-05-13 14:40:47

标签: c# xml serialization

我正在寻找一个XML序列化解决方案来序列化一个包含List<T>的类。阅读它the MSDN article for System.XML.Serialiation(约5/8页面)

[Serialization of ArrayList and Generic List]
The XmlSerializer cannot serialize or deserialize the following: 
  Arrays of ArrayList
  Arrays of List<T>

这是否意味着我无法序列化我的List<T>或者说我无法序列化类似

的内容
List<int>[] intArr = new List<int>[10];

编辑:为什么不能这样做?

3 个答案:

答案 0 :(得分:1)

列表数组将是

List<int>[]

所以,你可以安全地序列化

List<int>

答案 1 :(得分:1)

后者。序列化List<T>非常常见。

答案 2 :(得分:0)

您可以使用整个班级,也可以只使用列表:

static void SerializeToXml<T>(string file, T value)
{
    var serializer = new XmlSerializer(typeof(T));
    using (var writer = XmlWriter.Create(file))
        serializer.Serialize(writer, value);
}

static T DeserializeFromXml<T>(string file)
{
    var serializer = new XmlSerializer(typeof(T));
    using (var reader = XmlReader.Create(file))
        return (T)serializer.Deserialize(reader);
}