【问题标题】:Stopping circular references in DataContract Serialiser在 DataContract Serializer 中停止循环引用
【发布时间】:2012-05-16 18:01:11
【问题描述】:

使用数据协定序列化对象时,我遇到了循环引用的问题。我知道使用 IsReference=true 但我不能使用它,因为我是从我无法控制的对象继承的。有什么办法可以绕行,我可以算个时间然后退出,比如休息一下吗?

【问题讨论】:

    标签: c# xml-serialization


    【解决方案1】:

    按照此处的建议实施自定义 DataContractSerializerBehavior:Circular References and WCF 我认为应该修复它吗?

    为非 WCF 更新:

    链接答案中的解决方案基于使用:

    new DataContractSerializer(type, name, ns, knownTypes,
                              0x7FFF //maxItemsInObjectGraph,
                              false //ignoreExtensionDataObject,
                              **true** //preserveObjectReferences,
                              null //dataContractSurrogate);
    

    我认为使用这个构造函数应该可以解决它。

    【讨论】:

    • 我没有使用 wcf,它只是使用 DataContractSerializer 进行序列化。我该如何针对这种情况实施解决方案?
    【解决方案2】:

    你可以使用 Wea​​kReferences 吗?

    http://msdn.microsoft.com/pt-br/library/system.weakreference.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-11
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      相关资源
      最近更新 更多