我想你会需要同时
ReferenceLoopHandling.Serialize和
PreserveReferencesHandling.All复制二进制序列化的行为。但是,生成的JSON可能不那么漂亮。
编辑: 我对JSON.Net4.5r10进行了更深入的研究,发现了一个缺陷:
JsonSerializerInternalWriter不检查
#ShouldWriteReference通过获得的引用
ISerializable。
随着
foreach循环中
#SerializeISerializable,如下改写,你的对象图顺利往返。
foreach (SerializationEntry serializationEntry in serializationInfo) { writer.WritePropertyName(serializationEntry.Name); var entryValue = serializationEntry.Value; var valueContract = GetContractSafe(entryValue); if (ShouldWriteReference(entryValue, null, valueContract, null, member)) { WriteReference(writer, entryValue); } else { Serializevalue(writer, entryValue, valueContract, null, null, member); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)