gpt4 book ai didi

c# - 处理 ASP.NET 5 中的 JSON 循环引用异常

转载 作者:太空狗 更新时间:2023-10-30 00:04:42 26 4
gpt4 key购买 nike

所以我在 ASP.NET 5 中使用 Web API。有时我的应用程序停止工作,只显示“Bad Gateway”IIS 错误页面(我在 IIS Express 中运行它,按 F5)。我花了一段时间才弄清楚问题出在哪里 - 我在我的 Web API 方法返回的类中引入了一个循环引用,如下所示:

public class CircularParent
{
public CircularChild Data;

public CircularParent()
{
Data = new CircularChild(this);
}
}

public class CircularChild
{
public CircularParent Owner { get; set; }

public CircularChild(CircularParent owner)
{
Owner = owner;
}
}

结果是JsonSerializationException。我的问题不是如何解决它,而是将来如何处理这种情况。我该如何处理这样的异常?或者至少如何记录它或只是看到它记录在某个地方? UseDeveloperExceptionPage() 没有帮助。 UseExceptionHandler(errorApp => errorApp.Run(...)) 也无济于事,执行不会进入 errorApp.Run()。调试器不会在异常时中断。我使用 IIS 得到的只是信息量不大的“Bad Gateway”页面。

最佳答案

尝试在最新版本中添加Newtonsoft.Json 8.0.1-beta3 package.json 中的依赖项并使用 use

services.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.ReferenceLoopHandling =
Newtonsoft.Json.ReferenceLoopHandling.Ignore;
});

参见 the issue了解更多详情。

关于c# - 处理 ASP.NET 5 中的 JSON 循环引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34420397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com