J'ai la structure XML suivante. L'élément Qu'est-ce qu'un moyen propre d'exprimer la structure de classe correspondante? p> Je suis sûr de ce qui suit: p> ainsi que: p> mais quoi À propos de theelement code> peut contenir
ortoptionallist code> ou non:
Théellement code>? Est-ce que je prends l'élément
theoptionallist code> en tant que type de tableau pour que ce soit lue ce qu'il trouve dans le fichier (rien ou une), puis de vérifier le code s'il est là ou non? Ou existe-t-il un autre décorateur que je puisse fournir? Ou est-ce que cela fonctionne simplement? P>
3 Réponses :
On dirait que vous pouvez utiliser un autre bool pour spécifier pour inclure un élément ou non.
Une autre option consiste à utiliser un modèle spécial pour créer un champ booléen reconnu par le xmlSerializer et appliquer le xmlignoreattribute sur le terrain. Le motif est créé sous la forme de ProtitierAmamesPepéfié. Par exemple, s'il y a un champ nommé "MyFirstName" Vous créeriez également un champ nommé "MyfirstnamesPecified" qui demande à l'XMLSérialisateur de savoir si Générez l'élément XML nommé "MyFirstName". Ceci est montré dans le Exemple suivant. P> blockQquote>
xxx pré> http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlSerializer.aspx p> p>
Merci pour la réponse. Cet exemple traite de la sérialisation, qui fait partie de ce que je suis confronté. L'autre partie est la désérialisation. Et si j'appelle désériorize () code> sur un fichier avec ce format? Parce que je ne pense pas que je puisse dire à la
xmlserializer code> pour le fichier dans son ensemble à quoi attendre par élément. En d'autres termes, existe-t-il un comportement par défaut si je désérialise et que cela ne voit pas un membre spécifié dans la classe?
Oui, il existe un comportement par défaut: le constructeur par défaut de la classe. Lorsque vous désérialisez votre XML, le xmlSerializer code> appelle le constructeur par défaut pour créer vos objets. Vous pouvez donc définir vos valeurs par défaut ici. Il est généralement utile de définir des valeurs par défaut pour les propriétés de la rétrécissement par défaut et de l'annexe
: ceci () code> sur vos autres constructeurs pour que vos valeurs par défaut sont définies en premier.
essayez d'ajouter isnlullable = true code> au
xmlarrayitem code> attribut. p>
Merci pour la réponse James. Je suppose que cela gérerait un élément ortoptionallist code> sans éléments, mais cela gérerait-il
théoptionalliste code> non existant du tout? (Je ne comprendrais peut-être pas ce que vous suggérez.) De plus, il n'y a pas de schéma pour mon format; Tout est par accord verbal entre moi et un autre développeur. :)
Je ne suis pas positif, mais je pense qu'utiliser islamllable code> l'excluait si le tableau est null.
Considérer un schéma. Il est très utile, aussi petit et est une excellente pièce pour votre «boîte à outils».
Supplément à la propriété code> xxyspecifed code>, il existe également une méthode avec un ostSerialize code> préfixe