2010-03-24 5 views
71

Meine Desktop-Anwendung serialisiert Objekte mit XmlSerializer. Ich wurde vorgeschlagen, stattdessen DataContractSerializer zu nutzen. In welchen Szenarien sollte ich DataContractSerializer verwenden?DataContractSerializer vs XmlSerializer: Vor-und Nachteile von jedem Serializer

Vielen Dank

Kommentare.
1. Die XML-Ausgabedatei wird lokal gespeichert. Keine anderen Anwendungen deserialisieren Objekte aus dieser XML-Datei.
2. Meine Anwendung läuft mit .NET Framework 3.5 SP1.

+0

Siehe auch [Datacontract-vs-xmltype] (http://stackoverflow.com/questions/624111/datacontract-vs-xmltype) – nawfal

Antwort

93

Dan Rigsby hat den ultimativen Beitrag dazu - geh und lies es!

XmlSerializer vs. DataContractSerializer (web archive)

Er sagt, alles, was es zu sagen ist, und in einer sehr überzeugend.

Kurz:

XmlSerializer:

  • gibt es schon seit langer Zeit
  • ist "opt-out"; alles öffentlich wird serialisiert, wenn Sie es sagen, nicht auf ([XmlIgnore])

DataContractSerializer ist:

  • das neue Kind in der Stadt
  • optimiert für die Geschwindigkeit (ca. 10% schneller als XmlSerializer, typisch)
  • „Opt-in“ - nur Sachen, die man speziell als [DataMember] markieren wird
  • aber etwas markiert mit [DataMember] serialisiert werden serialisiert werden - ob esistoder private
  • nicht XML-Attribut unterstützt (aus Geschwindigkeitsgründen)
+1

Warten Sie, können Sie diesen letzten Punkt näher ausführen? –

+2

@ Paul-SebastianManne: Der DataContractSerializer unterstützt keine XML-Attribute - aus Gründen der Geschwindigkeit. Was ist zu erarbeiten? –

+0

Nun, ich bin neu in .NET. Ich wollte XmlSerializer weiter verwenden, da ich ein paar Tutorials online gefunden habe. Aber dann habe ich DataContractSerializer auf MSDN gefunden, die mit WCF verknüpft zu sein scheint. Ich möchte etwas XML in ein einfaches Objekt deserialisieren, das mir den Zugriff auf ein XML-Element und seine Attribute ermöglicht, weil ich diese Objekte später in ein XML-Dokument serialisieren möchte, nachdem ich einige Werte für die Attribute berechnet habe. –

Verwandte Themen