Heim >Backend-Entwicklung >C++ >Kann Json.Net das Verhalten privater Setter konfigurieren, ohne den Quellcode zu ändern?
Konfigurieren des Verhaltens privater Setter in Json.Net
Während Json.Net ein Attribut zum Ansprechen privater Setter bietet, ist dies eine Standardoption für diese Funktionalität ist oft gefragt. In Ermangelung von Änderungen am Quellcode stellt sich die Frage: Gibt es eine konfigurierbare Einstellung, um dieses Verhalten zu erreichen?
Antwort
Option 1: Verwendung der [ JsonProperty]-Attribut
Anstatt sich auf ein bestimmtes Attribut zu verlassen, verwenden Sie einfach das [JsonProperty]-Attribut. Das Attribut dient dazu, schreibgeschützte Eigenschaften während der Deserialisierung zu füllen. Ein Beispiel:
[JsonProperty] public Guid? ClientId { get; private set; }
Option 2: Konstruktorbasierte Lösung
Ein alternativer Ansatz besteht darin, einen Konstruktor mit einem Parameter zu erstellen, der der privaten Eigenschaft entspricht:
public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } }
Dies ermöglicht Folgendes:
string json = "{ \"bar\": \"Stack Overflow\" }"; var deserialized = JsonConvert.DeserializeObject<Foo>(json); Console.WriteLine(deserialized.Bar); // Stack Overflow
Die Vorteile dieses Ansatzes include:
Das obige ist der detaillierte Inhalt vonKann Json.Net das Verhalten privater Setter konfigurieren, ohne den Quellcode zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!