【发布时间】:2011-09-18 15:05:52
【问题描述】:
我得到一些类型 IList<object[]> ,将其序列化为 xml 的最佳方法是什么。
然后回读给IList<object[]>。
我只是没有看到任何简单的方法。
感谢您的帮助。
【问题讨论】:
标签: c# .net xml xml-serialization
我得到一些类型 IList<object[]> ,将其序列化为 xml 的最佳方法是什么。
然后回读给IList<object[]>。
我只是没有看到任何简单的方法。
感谢您的帮助。
【问题讨论】:
标签: c# .net xml xml-serialization
XmlSerializer 阻塞接口。因此,您可以在序列化之前将其转换为数组或具体的List<T>。此外,您绝对应该specify known types,因为这个object[] 根本不起作用。序列化程序必须事先知道您将要处理的所有类型。这样,它会将类型信息发送到生成的 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);
如果您不关心人类可读性,二进制序列化程序应该就可以了。
【讨论】: