【问题标题】:serialization of IList<object[]> XmlSerializer with Generic Lists使用通用列表对 IList<object[]> XmlSerializer 进行序列化
【发布时间】:2011-09-18 15:05:52
【问题描述】:

我得到一些类型 IList&lt;object[]&gt; ,将其序列化为 xml 的最佳方法是什么。 然后回读给IList&lt;object[]&gt;

我只是没有看到任何简单的方法。

感谢您的帮助。

【问题讨论】:

    标签: c# .net xml xml-serialization


    【解决方案1】:

    XmlSerializer 阻塞接口。因此,您可以在序列化之前将其转换为数组或具体的List&lt;T&gt;。此外,您绝对应该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);
    

    如果您不关心人类可读性,二进制序列化程序应该就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      相关资源
      最近更新 更多