JSON.Net-Ausnahme „Selbstreferenzierende Schleife erkannt“
Die Ausnahme „Selbstreferenzierende Schleife erkannt“ in JSON.Net tritt auf, wenn dies der Fall ist ein Zirkelverweis in den zu serialisierenden Daten. Im bereitgestellten Code tritt diese Ausnahme auf, wenn versucht wird, eine Liste von Routenobjekten aufgrund einer Schleife im Objektdiagramm zu serialisieren.
Ausnahmedetails
Die Ausnahmemeldung zeigt an, dass in der PartNumber-Entität eine selbstreferenzierende Schleife erkannt wurde. Konkret enthält der Pfad „routes[0].incomingLots[0].partNumber.partType.partNumbers“ eine Schleife, was bedeutet, dass die JSON-Darstellung der Routenliste Verweise auf sich selbst enthalten würde.
Lösung
Um dieses Problem zu beheben und die Schleife zu verhindern, ändern Sie den Konstruktor der DbContext-Klasse, um Lazy Loading und Proxy zu deaktivieren Erstellung:
public YourDbContext() : base("name = YourDbContext") { // Disable lazy loading and proxy creation this.Configuration.LazyLoadingEnabled = false; this.Configuration.ProxyCreationEnabled = false; }
Auf diese Weise weisen Sie den DbContext an, verwandte Entitäten nicht automatisch zu laden und Proxys für sie zu erstellen. Dadurch wird der Zirkelverweis unterbrochen und die Routenliste kann erfolgreich serialisiert werden.
Das obige ist der detaillierte Inhalt vonWie löse ich die Ausnahme „Selbstreferenzierende Schleife erkannt' in JSON.Net beim Serialisieren einer Liste von Objekten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!