当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《处理ASP.NET5中的JSON循环引用异常》经验,为你挑选了1个好方法。

所以我在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"页面.



1> Oleg..:

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

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

有关更多详细信息,请参阅问题

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有