JSON.NET-Deserialisierung und Schnittstelleneigenschaften: Eine praktische Lösung
Das Deserialisieren von JSON-Daten in C#-Objekte mithilfe von JSON.NET kann beim Umgang mit Eigenschaften von Schnittstellentypen zu Schwierigkeiten führen. Ein häufiger Fehler tritt auf: JSON.NET kann Schnittstellen nicht direkt instanziieren.
Die Lösung liegt in der Nutzung konkreter Klassenparameter im Konstruktor Ihrer Klasse. Dies führt JSON.NET während der Deserialisierung zu den richtigen konkreten Klassen.
Hier ist ein Beispiel:
<code class="language-csharp">public class Visit : IVisit { // Constructor crucial for JSON.NET to identify concrete types for deserialization. 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>
Durch die Aufnahme von MyLocation
und Guest
(konkrete Klassen, die jeweils ILocation
und IGuest
implementieren) in den Konstruktor kann JSON.NET die JSON-Daten erfolgreich den entsprechenden Typen zuordnen und so das Problem der Schnittstelleninstanziierung überwinden. Dieser Ansatz ermöglicht es Ihnen, die Flexibilität der Schnittstellen beizubehalten und gleichzeitig eine reibungslose Deserialisierung sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Eigenschaften auf Schnittstellenebene in JSON.NET deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!