当前位置:编程学习 > C#/ASP.NET >>

WCF中,循环引用问题

WCF初学者请教下问题,感谢大家帮忙!
 
情况:有class A 和 B

[Serializable]
public class A
{
    IList<B> _bList;

    [XmlIgnore]
    public IList<B> BList
    {
        get {return _bList;}
        set {_bList = value;}
    }
}

[Serializable]
public class B
{
    A _aProperty;

    public A AProperty
    {
        get {return _aProperty;}
        set {_aProperty= value;}
    }
}


此时,class A 和 B 是循环引用关系,并且WCF会使用默认的DataContractSerializer
 
但是,DataContractSerializer默认不支持循环引用的序列化
 
目前查到有2个方法可以解决:
 
1.在class A上使用[DataContract(IsReference=true)](DataContract这个Attribute不能与Serializable一起使用吧)
 
2.使用DataContractSerializer的preserveObjectReferences参数
 
我的问题是:
 
我的项目中,像A和B这样的class还有很多,并且不想删掉Serializable这个Attribute
 
这两种方式都需要在类(.cs文件)中处理,也就是说,需要一个class一个class的修改,很麻烦
 
有没有什么方式,可以在配置文件中实现的?
 
谢谢各位了!
--------------------编程问答-------------------- 我觉得吧,循环引用就不应该出现~~~
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,