Mi piacerebbe conoscere gli scenari più comuni in cui la serializzazione xml potrebbe non riuscire in .NET.Scenari in cui la serializzazione Xml non riesce in .NET
risposta
sto pensando principalmente di XmlSerializer
qui:
- si è limitata ai dati ad albero; esso non può gestire grafi di oggetti pieni
- è limitato ai soci pubblici, sulle classi pubbliche
- non può davvero fare molto con i membri
object
- ha alcuni punti deboli in tutto generici
- come molti serializzatori, non toccherà le proprietà di istanza in una raccolta (pratica male in primo luogo)
- xml semplicemente non è sempre una buona scelta per dati di grandi dimensioni (non meno importante, per le prestazioni)
- richiede un costruttore senza parametri pubblica
DataContractSerializer
risolve alcuni di questi, ma ha i suoi limiti:
-
valori
- non può gestire in attributi
- richiede .NET 3.0 (e quindi non tanto l'uso in 2,0)
La questione membri pubblici può essere lavorato intorno utilizzando DataContractSerializer –
vero - chiarirà ... –
Questi sono tutti buone cose da sapere sul framework di serializzazione Xml in .NET, ma non direi che sono scenari comuni in cui la serializzazione XML "fallisce". Ad esempio, che il serializzatore Xml serializza solo membri pubblici di lettura/scrittura è un attributo del framework di serializzazione, non uno scenario in cui non riesce. Il fatto che richieda alla classe di avere un amministratore pubblico senza parametri non è un "fallimento" di per sé. – Cheeso
TimeSpan
oggetti non serializzabili. IDictionary
- I tipi di implementazione non sono serializzabili (sebbene siano possibile serializzare con alcuni massaggi manuali).
A seconda del serializzatore, i riferimenti ciclici potrebbero non funzionare
AFAIK, le classi contrassegnate come [Obsoleto] non sono serializzate da XmlSerializer da .NET 2.0
Impossibile serializzare facilmente raccolte generiche.
vedere un'altra domanda: C# XML Serialization Gotchas
Utilizzando la parola ombre ha anche rotto la serializzazione e deserializzazione per me, perché l'ombra fa sì che una nuova implementazione di tale proprietà di esistere che rende incompatibili per una corretta ricostruzione. Utilizzare gli overload solo se si desidera ridigitare lo specifico per una sottoclasse.
Per coloro che non conoscono VB.NET, "' Shadows' "equivale a' new' in C#: 'public new int PropertyName {get; set;}' dove la classe base ha un 'PropertyName int pubblico virtuale. ..'. –
- 1. NET serializzazione XML e l'eredità
- 2. La serializzazione XML è lenta
- 3. Esistono scenari in cui non è possibile utilizzare Attività?
- 4. Corretta serializzazione XML e deserializzazione di tipi "misti" in .NET
- 5. Serializzazione Xml in C#
- 6. NET serializzazione XML senza dichiarazione <?xml> testo
- 7. interni di serializzazione in .Net
- 8. Quando utilizzare la serializzazione XML o la serializzazione binaria nel framework .NET?
- 9. XML serie serializzazione in C#
- 10. Serializzazione e offuscamento in .NET
- 11. serializzazione Transfer Data Objects in .NET
- 12. La serializzazione da Python a JSON non riesce su Decimale
- 13. serializzare una bitmap in C# /. NET XML
- 14. Come utilizzare la serializzazione XML predefinita da metodi di serializzazione XML personalizzati
- 15. Come controllo la parte <?xml ?> della serializzazione xml con .NET?
- 16. Enum serializzazione JSON vs XML
- 17. SerializationException durante la serializzazione di molti oggetti in .NET
- 18. Come è possibile controllare la serializzazione .NET DataContract in modo che utilizzi attributi XML anziché elementi?
- 19. - Serializzazione da XML a XML
- 20. attributi obbligatori di serializzazione XML
- 21. xml condizionale serializzazione
- 22. NHibernate in scenari disconnessi
- 23. Perché non esiste un dizionario serializzabile XML in .NET?
- 24. Perché la serializzazione binaria è più veloce della serializzazione xml?
- 25. Come modificare il nome radice XML con la serializzazione XML?
- 26. Immutabilità e serializzazione XML
- 27. La serializzazione XML genera nodi duplicati
- 28. serializzazione XML di una collezione in C#
- 29. Serializzazione Xml senza eliminazione
- 30. Come personalizzare la serializzazione XML WCF
Forse un duplicato di http://stackoverflow.com/questions/67959/net-xml-serialization-gotchas – dthrasher