XML Serialization from MSDN:sérialisation XML vs réflexion en C#
sérialisés et Désérialise objets dans et à partir de documents XML. Le XmlSerializer vous permet de contrôler comment les objets sont codés en XML.
réflexion fournit des objets (de type de type ) qui encapsulent les assemblages, les modules et les types . Vous pouvez utiliser réflexion pour créer dynamiquement une instance d'un type, lier le type à un objet existant ou obtenir le type d'un objet existant et invoquer ses méthodes ou accéder à ses champs et propriétés. Si vous utilisez les attributs dans votre code, Reflection vous permet d'y accéder.
Pour autant que je sache, je pourrais créer des objets en cours d'exécution en utilisant XML Serialization? En d'autres termes, disons que j'ai une base de données, je pourrais définir mes "classes" ou "objets" dans quelques tables. Je pourrais alors obtenir le code XML pour les données de l'objet, puis créer l'objet au moment de l'exécution.
Je pourrais également avoir ces objets compilés en tant que bibliothèques facilement disponibles, puis utiliser Reflection pour accéder à ses fonctions. D'après vous, lequel de ces deux concepts accorderait le plus de flexibilité tout en sacrifiant la moindre performance? Points bonus si vous pouvez fournir une explication détaillée avec des considérations et peut-être un échantillon de code.
Il n'est pas vrai que vous ne pouvez pas créer de nouveaux types à la volée avec Reflection. Jetez un oeil à Reflection Emit. –
@Mark Seemann. L'espace de noms 'System.Reflection.Emit' était ce que je pensais quand j'ai écrit" une autre approche ". Je ne considère pas cette partie de la réflexion «normale», mais plutôt un cadre pour les compilateurs et les générateurs de code pour générer du code plutôt que pour réfléchir sur le code. Votre définition de «réflexion» peut bien entendu être différente. –