Maison > développement back-end > C++ > Comment puis-je définir des setters privés comme comportement par défaut dans Json.Net ?

Comment puis-je définir des setters privés comme comportement par défaut dans Json.Net ?

DDD
Libérer: 2025-01-04 13:08:40
original
826 Les gens l'ont consulté

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

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; }
Copier après la connexion

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;
    }
}
Copier après la connexion

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
Copier après la connexion

Avantages de l'approche constructeur :

  • Élimine le besoin de décoration d'attribut
  • Applicable aux deux { get ; ensemble privé; } et { obtenir ; } propriétés

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal