Pour analyser et modifier un object obj
1 - Récupérer le type de l'objet
Type type = obj.GetType();
2 - Pour avoir la liste de ses propriétés :
PropertyInfo []propz = type.GetProperties(...);
- Les options en paramètres dépendent de ce que tu veux : (public/protégées, Instance/statiques, héritée ou déclarée, ...) Voir la doc de .Net
- Pour la liste de méthodes, c'est pareil avec MethodInfo . Pour les champs FieldInfo.
3 - Pour récupérer une valeur : GetValue(...)
PropertyInfo prop = ...
object value = prop.GetValue(obj, null);
4 - Pour modifier une valeur : SetValue(...)
PropertyInfo prop = ...
prop.SetValue(obj, value, null);
Bon, c'est les grandes lignes, après ça marche plus ou moins pareil pour les différents membres d'une classe.
Mose