E 'possibile deserializzare (C#) un pezzo di XML, CSV, JSON (qualunque esso sia), e non so il suo tipo? Ma essere restituito un oggetto (che in definitiva è il tipo corretto)?Non sapendo un tipo prima di deserializzazione
risposta
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.
Non in alcun modo semplice. Dovresti scrivere la logica per analizzare i dati e decidere quale tipo il suo formato assomiglia più a quello.
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.
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.
- 1. Deserializzazione di un tipo generico con Jackson
- 2. pulizia JSON per XSS prima della deserializzazione
- 3. Come si modifica il tipo predefinito per la deserializzazione numerica?
- 4. Problema di token di tipo Gson con deserializzazione generica
- 5. deserializzazione variabile di tipo array JSON utilizzando DataContractJsonSerializer
- 6. deserializzazione tipo derivato usando DataContractSerializer quando tipo derivato non è noto in anticipo
- 7. Errore colata TypeToken al tipo quando la deserializzazione con GSON
- 8. json.net serializzazione/deserializzazione di datetime 'non specificata'
- 9. deserializzazione non funziona su MemoryStream
- 10. JSON .Net non rispettando PreserveReferencesHandling sulla deserializzazione
- 11. GSON non-Case Sensitive Enum deserializzazione
- 12. Serializzazione/deserializzazione di Protobuf-net
- 13. Errore di sintassi: mancante ';' prima di 'tipo'
- 14. dinamicamente deserializzazione di un immobile in RestSharp
- 15. Recupero del tipo non chiuso di un tipo generico che chiude un tipo generico
- 16. Perché c'è un segno più prima di questo tipo?
- 17. Json.NET: serializzazione/deserializzazione di array
- 18. Come personalizzare la serializzazione/deserializzazione di un tipo complesso in ServiceStack.OrmLite
- 19. deserializzazione oggetto [] che contiene i tipi primitivi e un tipo di classe
- 20. Jackson: deserializzazione di Map
- 21. jQuery prima del selettore di tipo?
- 22. tipo di ritorno prima o dopo __declspec?
- 23. Deserializzazione su un tipo F # utilizzando json.net e una proprietà json contenente un simbolo @
- 24. Deserializzazione polimerica di Jackson - È possibile richiedere l'esistenza di un campo invece di un valore specifico?
- 25. ComponentSerializationService non deserializzazione tutte le proprietà
- 26. Rails PaperClip Allegati, sapendo se c'è una miniatura dell'immagine?
- 27. polimorfico JSON deserializzazione non riuscendo utilizzando Json.Net
- 28. Caso deserializzazione insensibile
- 29. Angular 2 Data deserializzazione
- 30. Come personalizzare la deserializzazione di un enume JSON in .NET?