2010-06-10 16 views

risposta

2

Sì, è possibile.

I dati serializzati XML/CSV/JSON devono contenere identificatori per consentire al deserializzatore di sapere quali tipi di oggetti creare, poiché questo non può essere conosciuto in anticipo. Affinché il deserializzatore possa costruire nuove istanze di oggetti, di solito viene utilizzato lo schema di progettazione FactoryMethod.

deserializzazione è più difficile di serializzazione.

1

Non in alcun modo semplice. Dovresti scrivere la logica per analizzare i dati e decidere quale tipo il suo formato assomiglia più a quello.

1

Comunemente sì. Ma dipende da quale serializzazione usi. I dati serializzati devono contenere metadati relativi ai tipi di oggetti serializzati. Ad esempio la serializzazione xml (System.Xml.Serialization) non supporta questo scenario.

2

Dipende dalla serializzazione.

Il BinarySerializer incorpora digitare le informazioni nel suo flusso di uscita, e allora ciò che si descrive avrebbe funzionato perfettamente. Si ottiene un oggetto e si può persino eseguire riflessioni su di esso e quindi trasmetterlo al tipo corretto.

serializzazione XML non funziona così, che è il motivo per cui il XmlSerializer richiede un tipo nel suo costruttore.

Stai meglio in uno scenario in cui i dati personali possono essere uno di un numero limitato di tipi, ognuno dei quali eredita da un tipo di base. Quindi puoi dare il tipo di base (che è decorato con gli attributi di tipo conosciuti per far sapere tutto su tutti gli altri tipi che potrebbe essere) e poi deserializzare i dati sul tipo di base standard, quindi ispezionarlo.

CSV e JSON sono ancora più difficili, dal momento che non c'è un sacco di supporto per la serializzazione per loro inserito nel framework.

Problemi correlati