2009-05-14 9 views
1

J'ai déjà effectué une sérialisation XML avant mais j'ai utilisé des attributs, je ne suis pas sûr que cela soit faisable pour ma prochaine affectation, voici une brève liste d'exigences de manipulation XML.Sérialisation XML, dans ce cas, IXmlSerializable ou Attributs

  • Manipulation XMl à usage général, liée à une vue arborescente, pas de schéma.
  • Charger/Enregistrer le fichier XML.
  • Charger/enregistrer des attributs ainsi que des valeurs (je crois que le terme est Element Text?), Et être conscient du nom du nœud.
  • Les commentaires peuvent être ignorés sans risque comme on le balisage Informations sur le document (par exemple, les balises UTF-8 et schéma)

Toutes les suggestions sur la meilleure façon de gérer cette situation?

Répondre

0

Je ne serais probablement pas pris la peine avec un modèle d'objet et IXmlSerializable - il semble que vous pourriez tout aussi bien parler d'un XmlElement/XmlDocument - à savoir transmettre les données autour comme un bloc de xml. Puisque vous n'avez pas de schéma, il serait inutile de le détruire; vous pouvez aussi bien le faire via un DOM xml.

Quand vous dites treeview - est-ce winforms, asp.net, wpf? Je crois que l'arborescence asp.net peut prendre une source xml, mais pour les winforms, vous devrez vous-même parcourir les nœuds.

+0

Malheureusement c'est winforms, je suis beaucoup plus à l'aise avec WPF tho. – Firoso

-1

Je vous suggère d'utiliser la sérialisation XML simple prise en charge par le framework .NET.

Go grâce à ces documents MSDN

How to Serialize an object

How to Deserialize an object

+0

Pouvez-vous dire pourquoi la sérialisation XML serait mieux adaptée à ses besoins? Qu'en est-il de la maintenabilité? –

+0

pourriez-vous me dire quel est le problème avec XMLSerializer ?. pourquoi pensez-vous que la maintenabilité est un problème? –

+1

Est-ce que l'électeur vers le bas aurait intérêt à expliquer? Je suppose que vous devez voter uniquement quand il y a quelque chose qui ne va pas. pas parce que vous ne l'aimez pas. –

0

Je ne sais pas exactement ce que vous entendez par "avant, mais je l'ai utilisé des attributs" mais je recommande XmlSerializer aussi:

  • Avec les classes "simples", il fonctionne généralement hors de la boîte.
  • Les collections peuvent nécessiter davantage de travail, mais cela dépend de vos besoins et de la structure de votre objet.
  • Il existe d'autres sérialiseurs XML de construction, tels que XAML ou WCF DataContractSerializer. Tous ont des avantages et des inconvénients. Mais si vous voulez affiner votre format XML, XMLSerializer est le plus flexible.
  • Vous pouvez aborder votre format pas à pas: Si la valeur par défaut est bonne, c'est fait. Sinon, vous devez ajouter quelques attributs dans la plupart des cas.
  • Si vous souhaitez un contrôle total, vous pouvez toujours implémenter IXmlSerialize pour affiner votre format.
  • Tout s'applique par classe: Utilisez la valeur par défaut, ajoutez des attributs si nécessaire et implémentez IXmlSerializable comme requis.
+0

Peut-être en raison de son association avec les services Web ASMX, très peu de bogues de sérialisation XML seront jamais corrigés. C'est une considération nécessaire pour une application de production. –

Questions connexes