Ho questa classe:C'è un modo per evitare che XmlSerializer non inizializzi una proprietà nulla durante la deserializzazione?
public class MySerializableClass
{
public List<MyObject> MyList { get; set; }
}
Se MyList è nullo quando MySerializableClass è serializzato, ho bisogno di avere nullo quando è deserialised troppo, ma il XmlSerializer inizializza sempre quando deserialises mia classe.
C'è un modo per evitare l'inizializzazione delle proprietà nulle?
MyList non viene nemmeno registrata nel file serializzato quando è null. Quando lo carico con valori null e lo salvo di nuovo, MyList non è più nullo, è serializzato come Elenco <> con 0 elementi, ma non null.
Grazie.
Maggiori informazioni:
proprietàUn IsDeserializing non è praticabile a causa di alcune restrizioni di codice nella struttura della classe
Wow, System.Xml non coglie di sorprendermi. Avere un setter pubblico per un membro della classe raccolta è * molto * insolito, rivedere il tuo progetto per verificare che è ciò che desideri veramente. Funziona bene senza un setter. –
Non è quello che voglio veramente. È ciò che vuole il serializzatore. Se faccio il get o set privato, il deserializzatore fallirà. – Carlo