Ciao a tutti
Scrivo 2 parole per chiarire il comportamento del DataContractSerializer
Il DataContractSerializer è nuovo del .NET 3.0... introdotto con WCF è il suo serializzatore di default.
Il comportamento è opt-in (serializzo solo ciò che è esplicitato con degli attributi) ma solo se marchio la mia classe con l'attributo [DataContract] e i membri con [DataMember], altrimenti per le classi public serializza in automatico tutti i membri (opt-out) a loro volta public a meno di usare sui member l'attributo [IgnoreDataMember].
Quando la classe non è public ma marchiata dal [Serializable] utilizzato dal BinaryFormatter (o il Soap) mi trovo un approccio opt-out alla BinaryFormatter, cioè serializzando tutti i field, a meno di usare l'attributo [NonSerialized]. Ovviamente in questo caso serializzando i field mi troverò nell'xml i loro nomi, o quelli randomicamente generati per le property autoimplementate.
Ho notato anche che se marchio la mia classe con entrambi gli attributi, allora si comporta come farebbe di solito con il solo [DataContract].