Maison > développement back-end > C++ > Comment puis-je désérialiser les propriétés d'interface dans JSON.NET sans erreurs ?

Comment puis-je désérialiser les propriétés d'interface dans JSON.NET sans erreurs ?

Susan Sarandon
Libérer: 2025-01-18 16:26:14
original
786 Les gens l'ont consulté

How Can I Deserialize Interface Properties in JSON.NET Without Errors?

Gestion des propriétés de l'interface lors de la désérialisation JSON avec JSON.NET

Le processus de désérialisation de JSON.NET peut être problématique lors de la rencontre avec des propriétés d'interface. La désérialisation directe des objets contenant des propriétés d'interface entraîne une erreur car JSON.NET ne peut pas instancier directement les interfaces.

Résolution : injection de constructeur pour une désérialisation transparente

Une solution simple et efficace consiste à tirer parti de l’injection de constructeur. En incorporant des instances de classe concrètes en tant que paramètres de constructeur dans la classe implémentant l'interface, JSON.NET peut identifier et utiliser correctement les classes concrètes appropriées lors de la désérialisation.

Exemple illustratif :

Examinons une classe comportant une propriété d'interface :

<code class="language-csharp">public class Visit : IVisit
{
    public Visit(MyLocation location, Guest guest)
    {
        Location = location;
        Guest = guest;
    }

    public long VisitId { get; set; }
    public ILocation Location { get; set; }
    public DateTime VisitDate { get; set; }
    public IGuest Guest { get; set; }
}</code>
Copier après la connexion

Cette approche basée sur un constructeur permet à JSON.NET de désérialiser avec précision les données JSON dans les classes concrètes nécessaires, résolvant ainsi le problème des propriétés d'interface.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal