ExpandoObject : Dé sérialisation des fichiers XML et traitement POO sans prise de têtes

Qu’est-ce que Expando Object ?

La classe ExpandoObject est une implémentation du concept d’objet dynamique qui permet l’obtention, la définition et l’appel de membres. Si vous souhaitez définir des types qui ont leurs propres sémantiques de distribution dynamique, utilisez la classe DynamicObject. Si vous souhaitez définir comment les objets dynamiques participent au protocole d’interopérabilité et gèrent la mise en cache de la distribution dynamique rapide du DLR, créez votre propre implémentation de l’interface IDynamicMetaObjectProvider.

  • Espace de noms : System.Dynamic
  • Assembly : System.Core (dans System.Core.dll)
  • Hiérarchie d’héritage :
  • System.Object
  • System.Dynamic.ExpandoObject

Contexte fonctionnelle

Il est souvent demandé par le client de pouvoir importé un fichier de données au format XML. Il est donc plus aisé de pouvoir travailler en mode objet, cependant la transformation XML en objet pur pourrait demander beaucoup de temps de développement. 
ExpandoObject apporte une réponse à cette problématique en fournissant un mécanisme de désérialisation sans implémentation de code lourd et complexe.

Comment ça fonctionne ?

Helper

Le helper a pour responsabilité de lire le fichier XML et de retourner une collection d’objets de type ExpandoObject

Le fichier XML

Le fichier XML contient l’arborescence à désérialiser.

ImportProcessor

Cette classe a en charge la transformation et le mapping des objets ExpandoObject en entité (POCO)

Faites-le vous même (Visual Studio 2015 / C# 4.5)

  1. Ouvrez la solution Créez dans mon article précédent sur Unity : Microsoft Unity 4 / Généricité de la couche d’accès aux données
  2. Dans la librairie STPVideoPlayer.DataLayer, Ajoutez une classe helper ExpandoHelper, cet helper aura en charge de lire le fichier XML et d’appeler une classe de traitement pour la transformation des données
    Remarquons ici, l’utilisons de l’objet PluralizationService qui permet en utilisant la culture anglaise de pluraliser les noms ou de les singulariser
  3. Pour lire un fichier il suffira alors juste d’appeler la méthode ExpandoHelper.ReadDocument(xmlFile)

ExpandoHelper : [C#]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.