Private Setter in Json.Net standardmäßig festlegen
Während Json.Net ein Attribut zur expliziten Behandlung privater Setter bereitstellt, besteht möglicherweise der Wunsch um dieses Verhalten als Standard festzulegen. Während die Optimierung des Quellcodes eine Option ist, gibt es alternative Ansätze, um dies zu erreichen:
Verwendung des [JsonProperty]-Attributs
Wenn der einzige Zweck darin besteht, eine schreibgeschützte Eigenschaft zu füllen Während der Deserialisierung reicht es aus, das Attribut [JsonProperty] anzuwenden. Zum Beispiel:
[JsonProperty] public Guid? ClientId { get; private set; }
Konstruktor mit Parameter
Erwägen Sie die Bereitstellung eines Konstruktors mit einem Parameter, der der Eigenschaft entspricht, wie unten gezeigt:
public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } }
Dieser Ansatz ermöglicht die Serialisierung und Deserialisierung:
string json = "{ \"bar\": \"Stack Overflow\" }"; var deserialized = JsonConvert.DeserializeObject<Foo>(json); Console.WriteLine(deserialized.Bar); // Stack Overflow
Vorteile des Konstruktoransatzes:
Das obige ist der detaillierte Inhalt vonWie kann ich private Setter als Standardverhalten in Json.Net festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!