Heim > Backend-Entwicklung > C++ > Wie löse ich die Ausnahme „Selbstreferenzierende Schleife erkannt' beim Serialisieren einer Liste von Objekten mit JSON.Net?

Wie löse ich die Ausnahme „Selbstreferenzierende Schleife erkannt' beim Serialisieren einer Liste von Objekten mit JSON.Net?

Barbara Streisand
Freigeben: 2024-12-28 07:56:10
Original
676 Leute haben es durchsucht

How to Resolve the

Ausnahme „Selbstreferenzierende Schleife erkannt“ bei JSON.Net

Beim Serialisieren einer Liste von Objekten kann JSON.Net auf die Ausnahme „Selbstreferenzierende Schleife erkannt“ stoßen. Dieser Fehler tritt auf, wenn im serialisierten Objektdiagramm Zirkelverweise vorhanden sind.

Spezifisches Problem

Der bereitgestellte Codeausschnitt:

public ActionResult getRouteFromPart(int partId)
{
    List<Route> routes = _routeService.GetRouteByPartType(partId);
    ...
    return this.AdvancedJsonResult(new
    {
        Routes = routes
    }, JsonRequestBehavior.AllowGet);
}
Nach dem Login kopieren

wirft das aus Ausnahme beim Versuch, die Liste der Route zu serialisieren Objekte.

Lösung

Die Ausnahme weist darauf hin, dass im Routenobjektdiagramm ein Zirkelbezug vorhanden ist. Konkret erwähnt die Fehlermeldung einen Pfad von „routes[0].incomingLots[0].partNumber.partType.partNumbers“. Dies deutet darauf hin, dass eine Beziehung zwischen Route-Objekten und PartNumber-Objekten besteht und dass die Referenz eine Schleife verursacht.

Um dieses Problem zu beheben, können Sie selbstreferenzierende Schleifen während der Serialisierung deaktivieren, indem Sie den JSON.Net-Serializer konfigurieren Einstellungen wie folgt:

var settings = new JsonSerializerSettings
{
    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
};
Nach dem Login kopieren

Diese Einstellung weist JSON.Net an, Zirkelverweise zu ignorieren und die Serialisierung fortzusetzen Prozess.

Vollständige Ausnahmemeldung

Self referencing loop detected with type 'System.Data.Entity.DynamicProxies.PartNumber_B135A5D16403B760C3591872ED4C98A25643FD10B51246A690C2F2D977973452'. Path 'routes[0].incomingLots[0].partNumber.partType.partNumbers'.
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie löse ich die Ausnahme „Selbstreferenzierende Schleife erkannt' beim Serialisieren einer Liste von Objekten mit JSON.Net?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage