Heim > Backend-Entwicklung > C++ > Wie kann ich private Setter als Standardverhalten in Json.Net festlegen?

Wie kann ich private Setter als Standardverhalten in Json.Net festlegen?

DDD
Freigeben: 2025-01-04 13:08:40
Original
826 Leute haben es durchsucht

How Can I Set Private Setters as the Default Behavior in Json.Net?

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; }
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

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
Nach dem Login kopieren

Vorteile des Konstruktoransatzes:

  • Macht eine Attributdekoration überflüssig
  • Gilt für beide { get; privates Set; } und { get; } Eigenschaften

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage