Ho bisogno di serializzare IEnumerable. Allo stesso tempo voglio che il nodo root sia "Canali" e il nodo di secondo livello - Canale (invece di ChannelConfiguration).Ignora nome classe per XmlSerialization
Ecco la mia definizione serializzatore:
_xmlSerializer = new XmlSerializer(typeof(List<ChannelConfiguration>), new XmlRootAttribute("Channels"));
ho sovrascritto nodo principale, fornendo XmlRootAttribute ma non ho trovato un'opzione per impostare canale invece di ChannelConfiguration come secondo nodo di livello.
So che posso farlo introducendo un wrapper per IEnumerable e utilizzando XmlArrayItem ma non voglio farlo.
perché non si vuole fare la scelta più facile? per curiosità? (si noti anche che l'uso di costruttori non banali significa ** deve ** memorizzare il serializzatore, altrimenti si perde l'assembly, il costruttore base 'XmlSerializer (Type)' non ne risente) –
Sei il proprietario della classe ChannelConfiguration, sono sei in grado di decorarlo con attributi? Se sì, ho probabilmente una soluzione. –
@MarcGravell, potresti aver ragione e dovrei usare un wrapper – SiberianGuy