C# IList的系列化<;对象[]>;具有泛型列表的XmlSerializer

C# IList的系列化<;对象[]>;具有泛型列表的XmlSerializer,c#,.net,xml,xml-serialization,C#,.net,Xml,Xml Serialization,我得到了一些类型IList,将其序列化为xml的最佳方法是什么。 然后将其读回IList 我只是看不到任何简单的方法来做到这一点 感谢您的帮助。XmlSerializer在接口上阻塞。因此,您可以在序列化之前将其转换为数组或具体的列表。此外,您还应该绝对了解,因为这个对象[]根本不起作用。序列化程序必须提前知道您将要处理的所有类型。这样,它会将类型信息发送到生成的XML中: var data = list.ToArray(); var knownTypes = new[] { typeof(Fo

我得到了一些类型
IList
,将其序列化为xml的最佳方法是什么。 然后将其读回
IList

我只是看不到任何简单的方法来做到这一点


感谢您的帮助。

XmlSerializer在接口上阻塞。因此,您可以在序列化之前将其转换为数组或具体的
列表。此外,您还应该绝对了解,因为这个
对象[]
根本不起作用。序列化程序必须提前知道您将要处理的所有类型。这样,它会将类型信息发送到生成的XML中:

var data = list.ToArray();
var knownTypes = new[] { typeof(Foo), typeof(Bar) };
var serializer = new XmlSerializer(data.GetType(), knownTypes);
serializer.Serialize(someStream, data);
或者,如果您不想为所有这些烦恼,只想为您的对象获取一些人类可读的持久性,您可以使用Json:

var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(list);
如果您不关心人类可读性,二进制序列化程序应该可以