首页 文章

DataContract Serialization给出“索引超出了数组的范围”异常..C#

提问于
浏览
0

我尝试使用dataContract序列化程序在C#中序列化大型树数据结构 . 我得到了循环引用异常 . 所以我用[DataContract(IsReference = true)]而不是[DataContract]标记了所需的类 . 现在我得到“索引超出了数组的范围”异常 . 我的代码如下:

public void Serialize(object obj, string file, Type t)
    {

        using (FileStream stream1 = new FileStream(file, FileMode.Create))
        {
            stream1.Position = 0;
            DataContractSerializer s = new DataContractSerializer(t);

            s.WriteObject(stream1, obj);
        }


    }

以上代码适用于所有其他序列化 . 仅在序列化此树对象的情况下,它不起作用 . 我已经针对所有必需的类标记了[DataContract(IsReference = true)],并针对所有必需的属性标记了[dataMember] . 请帮助

1 回答

  • 0

    我想建议使用 DataContract(IsReference = true) 属性标记所有继承的类 . 但是你已经说过你做到了这一点 . 因此,再次检查您的标记,并确保只标记继承的类 . 如果只标记了继承的类但仍然出现此错误,那么只需使用 WCF Tracing 检查项目 .

    跟踪将显示序列化过程中发生的详细信息 .

    您可以在MSDN找到更多详细信息 .

相关问题