当我尝试使用ASP.NET Core Newsoft JSON.NET序列化某些域对象时,它会抛出异常,因为它正在检测自引用循环。
在ASP.NET 4中,我们过去常常以这种方式修复它: JSON.NET Error Self referencing loop detected for type
我们如何在ASP.NET Core中解决这个问题?
答案 0 :(得分:79)
与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"])
);
}