В ASP.NET Core обнаружена петля самоссылки
Когда я пытаюсь сериализовать некоторые доменные объекты с помощью ASP.NET Core Newsoft JSON.NET, это вызывает исключение, потому что он обнаруживает цикл самоссылки.
В ASP.NET 4 мы исправляли это глобально следующим образом: ошибка JSON.NET Обнаружена циклическая ссылка на тип
Как мы можем это исправить в ASP.NET Core?
1 ответ
Решение
В ASP.NET 4 нет различий в том, как обрабатываются циклы с самоссылкой, по сравнению с ASP.NET Core (ранее Asp.Net 5). Принципы, изложенные в вопросе, на который вы ссылались в своем посте, все еще применяются. Однако установка этого свойства в 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"])
);
}