2016-04-26 12 views
3

Dieses Projekt, mit dem ich arbeite, verwendete einen neuen DbContext, der für jede Repository-Methode erstellt wurde (was bedeutete, dass jede Anfrage eine beliebige Anzahl von dbcontexts hatte) auf jeder Webanfrage.json.net ignoriert zirkuläre Referenzen nicht, wenn ReferenceLoopHandling.Ignore gesetzt ist

Ich habe gelöst, dass nur pro Anfrage einen Zusammenhang haben, aber einige der Serialisierung geht drunter und drüber und bekommt nicht genügend Arbeitsspeicher Ausnahme. Mit Blick auf die serialisierten Daten, Json.Net ignoriert vollständig die ReferenceLoopHandling.Ignore ENUM-Wert für die Zirkularreferenz Handhabung. Beachten Sie, dass, wenn ich es auf ReferenceLoopHandling.Error gesetzt, ich eine Ausnahme sofort auf sich selbst verweisende Objekt bekommen. beide Proxies

Das mit und Lazy Loading geschieht aktiviert und deaktiviert.

Liste der Einstellungen für JsonSerializer verwendet:

DateFormatHandling = DateFormatHandling.IsoDateFormat, DateTimeZoneHandling = DateTimeZoneHandling.Local, Formatting = Formatting.None, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Include

+1

Können Sie Ihre Frage gehören ein [Minimal, vollständig und prüfbare Beispiel] (http://stackoverflow.com/help/mcve) demonstriert das Problem bearbeiten? Dies wird es viel einfacher für jemanden machen, Ihnen zu helfen. –

Antwort

3

Versuchen SerializerSettings.PreserveReferencesHandling-PreserveReferencesHandling.Objects Einstellung, so dass Verweise auf vorhandene Objekte ausgeführt Referenzen anstelle von Re-Serialisierung des Objekts.

+0

Ich weiß, das ist alt, aber das betrifft mich jetzt auch. Dieser Vorschlag stoppt den Fehler, führt aber dazu, dass Sie Ihren JSON auf eine völlig andere Weise lesen müssen. Warum macht das Objekt nicht einfach das, was es sagt? – ewahner

Verwandte Themen