循环引用和ScriptIgnore问题我有几个相互引用的BusinessObject类,我需要在JsonResponse中序列化一个并将其返回到我的视图中。我一直收到循环引用异常,我无法摆脱它。我已经将[ScriptIgnore()]装饰器放在每个不是简单数据类型属性的属性上,但我仍然遇到异常。我无法弄清楚问题出在哪里,因为我在几乎所有内容上都阻止了序列化程序,但它仍然在我身上爆炸。有没有办法查看序列化对象的当前状态?[HttpPost]publicJsonResultGetAnalysisInfo(intid){ProjectContextmyDB=db;SearchAnalysissearchanalysis=SearchAnalysis.Find(myDB,id);//searchanalysis.Results=searchanalysis.SearchResultsPrototype(myDB);返回this.Json(searchanalysis);}UPDATE我也试过实现ISerializable无济于事。我的GetObjectData非常简单:publicvoidGetObjectData(SerializationInfoinfo,StreamingContextcontext){info.AddValue("SearchAnalysisId",this.SearchAnalysisId);info.AddValue("已创建",this.Created);仍然收到CircularRefernce错误。DateTime数据类型不会导致序列化问题吗?我为防止该错误所做的事情是返回一个反映我的对象属性的匿名类型,如下所示:选择新的{名称=公司.DbName,Id=公司.Id,活动=公司.Id.Equals(CurrentCompany.Id)});返回Json(列表,JsonRequestBehavior.AllowGet);也许这不是最好的方法,但它允许我保持我的JSON精简并只推送我需要的数据(当然避免循环引用异常)看看你的示例,我将从SearchAnalysis中选择新的匿名类型,获得我需要的属性。这个应该行以上就是C#学习教程的全部内容:循环引用和ScriptIgnore问题分享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
