当我尝试使用ASP.NET Core Newsoft JSON.NET序列化某些域对象时,它抛出了一个异常,因为它检测到了一个自引用循环。
在ASP.NET 4中,我们曾通过以下方式全局修复它:JSON.NET错误检测到类型的自引用循环
如何在ASP.NET Core中修复此问题?
与ASP.NET Core(以前的ASP.NET 5)相比,ASP.NET 4中处理自引用循环的方式没有什么不同。你在帖子中提到的问题中概述的原则仍然适用。然而,考虑到配置和引导应用程序的新方法:,在ASP.NET Core中设置此属性显然略有不同
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddJsonOptions(options => {
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
services.AddEntityFramework().AddSqlServer().AddDbContext<IvoryPacketDbContext>(
options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])
);
}