Heim > Backend-Entwicklung > C++ > Kann Json.Net das Verhalten privater Setter konfigurieren, ohne den Quellcode zu ändern?

Kann Json.Net das Verhalten privater Setter konfigurieren, ohne den Quellcode zu ändern?

Barbara Streisand
Freigeben: 2025-01-05 06:28:12
Original
431 Leute haben es durchsucht

Can Json.Net Configure Private Setter Behavior Without Modifying Source Code?

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

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

Dies ermöglicht Folgendes:

string json = "{ \"bar\": \"Stack Overflow\" }";

var deserialized = JsonConvert.DeserializeObject<Foo>(json);
Console.WriteLine(deserialized.Bar); // Stack Overflow
Nach dem Login kopieren

Die Vorteile dieses Ansatzes include:

  • Es ist keine Zuordnung von Eigenschaften erforderlich.
  • Kompatibilität mit beiden { get; privates Set; } und { get; }.

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage