В 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"])
    );
}
Другие вопросы по тегам