Ayant essayé de chercher avec différentes combinaisons de ".net désérialiser xml un type d'objet connu" ... et ne trouvant rien qui ait du sens, je suis là maintenant..net deserialize xml à l'un des multiples objets connus
Je reçois 1 des 5 objets indépendants (différents schémas pour chacun) qui peuvent m'être envoyés et j'ai besoin de désérialiser ce xml dans l'objet correct. Et bien sûr, le nombre/type d'objets va augmenter ;-) Y a-t-il un moyen pour le désérialiseur de faire correspondre le contenu xml à un objet, peut-être de réfléchir (juste deviner)? Je n'obtiens aucune enveloppe externe de xml autour de l'objet sérialisé me disant ce que c'est, autre que le contenu de xml lui-même. Ce sont des messages arrivant de différents systèmes me notifiant d'un événement, changement de statut, nouvel ordre, ...
Je pense à la force brute à ce stade, lecteur de xml à la recherche d'un attribut d'identification qui correspond de façon unique à un de mes connus éléments, puis passer de là à désérialiser en utilisant le type approprié. Cela ne semble pas trop élégant.
Toute orientation apprécié, G
Cela n'a pas fonctionné pour moi. Le premier paramètre de type passé dans le constructeur de XmlSerializer doit correspondre à l'élément racine du fichier XML. – Pradeep
Je dois me corriger. Cela ne fonctionnera que si le premier paramètre est le même pour le sérialiseur et le désérialiseur. Par exemple, si le premier paramètre est typeof (Message), alors le xml sérialisé aura un élément racine. Si le XML est dans un schéma prédéfini et que vous n'avez aucun contrôle sur celui-ci, alors cela ne fonctionnera probablement pas pour vous. –
Pradeep