2016-01-12 10 views
9

Kiedy próbuję serializować niektóre obiekty domeny przy użyciu programu ASP.NET Core Newsoft JSON.NET, zgłaszany jest wyjątek, ponieważ wykrywa on pętlę samoczynnego odwoływania się.Wykryto pętlę samoczynnego odwoływania się w ASP.NET Core

W ASP.NET 4 użyliśmy go naprawić globalnie w ten sposób: JSON.NET Error Self referencing loop detected for type

Jak możemy to naprawić w ASP.NET Rdzenia?

+0

Spójrz [odpowiedzi] (http://stackoverflow.com/a/34421722/315935). To powinno rozwiązać twój problem. – Oleg

Odpowiedz

35

Nie ma różnicy w sposobie obsługi pętli samoreferencyjnych w ASP.NET 4 w porównaniu do ASP.NET Core (poprzednio Asp.Net 5). Zasady podane w pytaniu, do którego się odwołujesz w swoim poście, nadal obowiązują. Jednak ustawienie tej właściwości w ASP.NET Rdzeń jest oczywiście nieco inna, ponieważ nowa metoda konfigurowania i uruchamiania się aplikacji:

+0

, aby było jasne, tylko linia "ReferenceLoopHandling" jest wymagana do rozwiązania tego problemu. – Daniel

+0

Zanim znalazłem to rozwiązanie, próbowałem użyć tego ustawienia na właściwości, która powodowała problemy, jako atrybutu '[JsonProperty (ReferenceLoopHandling = ReferenceLoopHandling.Ignore)]' ale nie przyniosło to żadnego efektu. Czy ktoś może wyjaśnić, dlaczego to rozwiązanie nie działa w pierwszej kolejności? – r1verside

+0

HI .. to nie działa dla mnie ani .. Musiałem tylko dodać "[JsonObject (IsReference = true)]" jako nagłówek klasy, który dał mi błąd i działa dobrze. – Diego