Ich habe ein komplexes Objektdiagramm, das ich mit Json.NET serialisieren/deserialisieren. Einige der Objekte stammen von einer abstrakten Klasse. Damit die Deserialisierung ordnungsgemäß funktioniert, musste ich eine benutzerdefinierte JsonConverter
erstellen. Seine einzige Aufgabe ist es, die entsprechende konkrete Implementierung der abstrakten Klasse zur Deserialisierungszeit auszuwählen und es Json.NET zu ermöglichen, seinen Weg fortzusetzen.Verwendung der Standardserialisierung in einem benutzerdefinierten JsonConverter
Mein Problem kommt, wenn ich serialisieren möchte. Ich brauche überhaupt nichts Brauchbares. Ich möchte genau das gleiche Verhalten erhalten, wie ich es mit JsonConvert.SerializeObject
ohne benutzerdefinierte JsonConverter
bekommen würde.
Da ich jedoch die benutzerdefinierte JsonConverter-Klasse für meine Deserialisierungsanforderungen verwende, muss ich eine WriteJson
Implementierung bereitstellen. Da WriteJson abstrakt ist, kann ich nicht einfach base.WriteJson
anrufen, aber ich möchte im Wesentlichen das tun. Meine Frage ist also, was setze ich in diese Methode ein, um das Jane-Standardverhalten zu erhalten? Mit anderen Worten:
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
// What goes here to get default processing?
}
Es war zu offensichtlich :). Vielen Dank! – MuiBienCarlota