草庐IT

ReferenceLoopHandling

全部标签

c# - 无法让 ASP.NET MVC 6 Controller 返回 JSON

我有一个MVC6项目,我在其中使用Fiddler来测试WebAPI。如果我采取以下使用EntityFramework7返回列表的Controller操作。然后html将呈现良好。[HttpGet("/")]publicIActionResultIndex(){varmodel=orderRepository.GetAll();returnView(model);}但是当我尝试返回一个Json响应时,我收到了502错误。[HttpGet("/")]publicJsonResultIndex(){varmodel=orderRepository.GetAll();returnJson(mo

c# - ReferenceLoopHandling.Ignore 在 WebApi Global.asax 中不起作用

我有一个返回循环错误的API端点(因为它链接了一个循环返回的连接类),例如classA{virtualClassAB;}classB{virtualClassAB;}classAB{virtualClassA;virtualClassB;}在APIGET中,我需要从ClassA的角度返回ClassB的详细信息(在ClassBGET中反之亦然)。当我得到时,我会执行以下操作:IQueryableresults=_dbset.Include(x=>x.ClassAB).Include(x=>x.ClassAB.Select(y=>y.ClassB)).AsExpandable().Wher

c# - 如何停止 .Net Core Web API 中的自引用循环?

我遇到了一些问题,我猜这些问题与使用.NETCoreWebAPI和EntityFrameworkCore的自引用有关。当我为某些导航属性添加.Includes时,我的WebAPI开始阻塞。我在较旧的WebAPI中找到了一个解决方案,但我不知道如何为.NETCoreWebAPI实现相同的解决方案(我仍处于早期学习阶段)。旧的解决方案是将其粘贴在Global.asax的Application_Start()中:GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoop

c# - 检测到 JSON.Net 自引用循环

我的网站在4个表中有一个mssql数据库。当我使用它时:publicstaticstringGetAllEventsForJSON(){using(CyberDBDataContextdb=newCyberDBDataContext()){returnJsonConvert.SerializeObject((fromaindb.Eventswherea.Activeselecta).ToList(),newJavaScriptDateTimeConverter());}}代码导致以下错误:Newtonsoft.Json.JsonSerializationException:Selfre

c# - 检测到 JSON.Net 自引用循环

我的网站在4个表中有一个mssql数据库。当我使用它时:publicstaticstringGetAllEventsForJSON(){using(CyberDBDataContextdb=newCyberDBDataContext()){returnJsonConvert.SerializeObject((fromaindb.Eventswherea.Activeselecta).ToList(),newJavaScriptDateTimeConverter());}}代码导致以下错误:Newtonsoft.Json.JsonSerializationException:Selfre

c# - Json.Net 中的 PreserveReferencesHandling 和 ReferenceLoopHandling 有什么区别?

我正在查看一个具有此编码的WebAPI应用程序示例:json.SerializerSettings.PreserveReferencesHandling=Newtonsoft.Json.PreserveReferencesHandling.Objects;还有一个用这个编码的:json.SerializerSettings.ReferenceLoopHandling=Newtonsoft.Json.ReferenceLoopHandling.Ignore;都没有解释为什么选择每个。我对WebAPI很陌生,所以有人可以通过简单的方式向我解释有什么区别以及为什么我可能需要使用其中一个来帮助

c# - Newtonsoft.json 中的 ReferenceLoopHandling.Ignore 究竟做了什么?

谁能给我一个可以使用它的场景。我对ReferenceLoopHandling.Ignore的理解是,如果您有一个引用对象B和B引用C和C再次引用A(A->B->C->A)的对象A,那么在序列化时,它将在C和A之间陷入无限循环,可以使用下面的方法来避免。我说的对吗?JsonConvert.SerializeObject(data,Formatting.Indented,newJsonSerializerSetting(){ReferenceLoopHandling=ReferenceLoopHandling.Ignore}));我遇到了通过使用上述方法解决的自引用循环问题,但我想准确了解

c# - Newtonsoft.json 中的 ReferenceLoopHandling.Ignore 究竟做了什么?

谁能给我一个可以使用它的场景。我对ReferenceLoopHandling.Ignore的理解是,如果您有一个引用对象B和B引用C和C再次引用A(A->B->C->A)的对象A,那么在序列化时,它将在C和A之间陷入无限循环,可以使用下面的方法来避免。我说的对吗?JsonConvert.SerializeObject(data,Formatting.Indented,newJsonSerializerSetting(){ReferenceLoopHandling=ReferenceLoopHandling.Ignore}));我遇到了通过使用上述方法解决的自引用循环问题,但我想准确了解