我创建了一个带有一个字段的简单类。class Test{int value;}
如果我使用“保留引用”功能并将其设置为“全部”(即对象和数组),那么当我简单地序列化 Test 对象数组时,它会被序列化为带有特殊“$values”成员的 JSON 对象与数组值,以及预期的“$id”属性一起保留数组引用。这很好,但整个事情再次在反序列化时中断。
单步查看源代码,我发现这只是因为测试“IsReadOnlyOrFixedSize
“是真的,它树立了一个标志”createdFromNonDefaultConstructor
" 为 true,这甚至没有任何意义,因为虽然它是一个固定大小的数组,但它是从默认构造函数创建的,除非它将任何固定大小的数组构造函数视为非默认构造函数。底线是它应该能够处理如此基本的事情,但它抛出了这个错误:“Cannot preserve reference to array or readonly list, or list created from a non-default constructor
".
如何反序列化基本数组,同时保留 JSON.NET 中的所有引用而不出现错误?
遇到同样的问题,我用过List<T>
代替T[]
要解决这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)