Обработка эталонных циклов Игнорировать не работает в Asp.Net Core 3.0 Preview 3 - PullRequest
1 голос
/ 19 марта 2019

Я бился головой об стену с этим, пытаясь выяснить, почему это не сработает.Я не смог ничего найти, почему он не работает, поэтому я спрашиваю здесь.

У меня есть консольное приложение, которое работает в Asp.Net Core 3.0 Preview 3.

В этом проекте я получаю проблему с циклом Json, которую, я знаю, я могу исправить, установив параметр Обработка контрольных циклов при запуске, чтобы игнорировать.Тем не менее, я мог найти информацию только о том, как установить его внутри .AddJsonOptions (), которого нет в Asp.Net Core 3.0.

Я обратился к документации по переходу с 2.1 на 3.0и я нашел this

Даже после соответствующего изменения моего кода

services.AddMvc()
     .AddNewtonsoftJson(
          options => { options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; }
      );

Я все еще получаю сообщение об ошибке: «Обнаружен цикл с самоссылкой для свойства» [вставить имя класса] 'с типом' [название модели] '. "

Где еще можно настроить Json на игнорирование ссылки на цикл?

Или что я могу сделать, чтобы это работало?

Спасибо заранее

1 Ответ

0 голосов
/ 25 марта 2019

Да, конечно, использование DTO является правильным способом обработки референсного цикла. НО для всех, у кого нет времени переписать всю логику:

в Startup.cs в ConfigureServices заменить

services.AddMvc()
        .AddNewtonsoftJson();

с

services.AddMvc()
        .AddNewtonsoftJson(options=> options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...