Vorremmo essere in grado di serializzare/deserializzare json da/a classi C#, con la classe principale che ha un'istanza di un oggetto figlio polimorfico. Fare ciò è facile usando l'impostazione TypeNameHandling di Auto di Json.Net. Tuttavia, vorremmo farlo senza il campo "$ type".Serializzazione Json.Net di tipo con oggetto figlio poliforfo
Il primo pensiero è di essere in grado di rinominare "$ tipo" su un valore di nostra scelta e di avere il valore per il tipo essere un enum che mapperebbe correttamente i sottotipi. Non l'ho visto come un'opzione, ma sarei lieto di sapere se è possibile.
Il secondo fu lungo le seguenti linee ... Ecco un primo passaggio a classi, con la classe di livello superiore avente un indicatore (SubTypeType) quale tipo di dati è contenuto in oggetto secondario (SubTypeData). Ho scavato un po 'nella documentazione di Json.Net e ho provato alcune cose ma non ho avuto fortuna.
Attualmente abbiamo il pieno controllo sulla definizione dei dati, ma una volta distribuito, le cose sono bloccate.
public class MainClass
{
public SubType SubTypeType { get; set; }
public SubTypeClassBase SubTypeData { get; set; }
}
public class SubTypeClassBase
{
}
public class SubTypeClass1 : SubTypeClassBase
{
public string AaaField { get; set; }
}
public class SubTypeClass2 : SubTypeClassBase
{
public string ZzzField { get; set; }
}
che è esattamente quello che stavo cercando di fare! – GaTechThomas
Grazie! Quella parte di ricorsione infinita mi stava uccidendo! –