Nig*_*ker 2 .net c# xml xml-serialization
我得到了一些类型IList<object[]>,将它序列化为xml的最佳方法是什么.然后再读回去IList<object[]>.
我只是没有看到任何简单的方法.
感谢帮助.
XmlSerializer在接口上窒息.因此,您可以List<T>在序列化之前将其转换为数组或具体.你也应该绝对指定已知类型,因为这object[]根本不起作用.序列化程序必须事先知道您将要处理的所有类型.这样它就会将类型信息发送到生成的XML中:
var data = list.ToArray();
var knownTypes = new[] { typeof(Foo), typeof(Bar) };
var serializer = new XmlSerializer(data.GetType(), knownTypes);
serializer.Serialize(someStream, data);
Run Code Online (Sandbox Code Playgroud)
或者如果你不想打扰所有这些,只需为你的对象获得一些人类可读的持久性,你可以使用Json:
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(list);
Run Code Online (Sandbox Code Playgroud)
如果你不关心人类的可读性,二进制序列化器应该做得很好.