Maison >développement back-end >C++ >Comment puis-je désérialiser les propriétés d'interface dans JSON.NET sans erreurs ?
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>
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!