2010-08-05 3 views

Répondre

1

Ceci est un site que j'ai trouvé quand je regardais dans le même problème. Vous devriez vérifier this sur

Je cite le même lien mentionné ci-dessus:

Avantages de DataContractSerializer sur XMLSerializer

  1. opt-in plutôt que des propriétés opt-out pour la sérialisation. Comme il est activé, vous pouvez sérialiser non seulement les propriétés, mais aussi les champs. Vous pouvez même sérialiser des membres non publics tels que des membres privés ou protégés. Et vous n'avez pas non plus besoin d'un ensemble sur une propriété (mais sans setter vous pouvez sérialiser, mais pas désérialiser)
  2. Est environ 10% plus rapide que XmlSerializer pour sérialiser les données parce que vous n'avez pas le plein contrôle sur comment il est sérialiser, il y a beaucoup à faire pour optimiser le processus de sérialisation/désérialisation.
  3. Peut comprendre le SerializableAttribute et savoir qu'il doit être sérialisé
  4. Plus d'options et de contrôle sur KnownTypes

Hope it helps!

0

Un plus gros avantage; La sérialisation DataContract permet l'interopérabilité entre deux classes implémentant le même DataContract. C'est ce qui permet à WCF de générer automatiquement les classes de données lorsque vous faites référence à un service WCF. Vous pouvez également "hacker" ce processus en référençant un DataContract publié dans une nouvelle classe développée par l'utilisateur (ou deux ou trois); Vous pouvez ensuite transférer des données entre les instances de ces classes et les autres nouvelles que vous créez via la sérialisation. C'est aussi possible mais beaucoup plus difficile avec la sérialisation XML, et impossible avec la sérialisation binaire.