Définition des setters privés dans Json.Net par défaut
Bien que Json.Net fournisse un attribut pour gérer explicitement les setters privés, le désir peut exister pour définir ce comportement par défaut. Bien que modifier le code source soit une option, il existe des approches alternatives pour y parvenir :
Utilisation de l'attribut [JsonProperty]
Si le seul objectif est de remplir une propriété en lecture seule lors de la désérialisation, l'application de l'attribut [JsonProperty] suffit. Par exemple :
[JsonProperty] public Guid? ClientId { get; private set; }
Constructeur avec paramètre
Envisagez de fournir à un constructeur un paramètre qui correspond à la propriété, comme indiqué ci-dessous :
public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } }
Cette approche permet la sérialisation et désérialisation :
string json = "{ \"bar\": \"Stack Overflow\" }"; var deserialized = JsonConvert.DeserializeObject<Foo>(json); Console.WriteLine(deserialized.Bar); // Stack Overflow
Avantages de l'approche constructeur :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!