C# XML 序列化,我可以序列化列表<T>吗?



我正在寻找一个XML序列化解决方案来序列化包含List<T>的类。阅读MSDN关于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];
编辑:为什么不可能这样做呢?

list的数组为

List<int>[]
所以,你可以安全地序列化
List<int>

后者。序列化List<T>是很常见的。

可以使用整个类,也可以只使用List:

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);
}

最新更新