mécanisme réflexion - C#/.NET managed - Programmation
Marsh Posté le 27-09-2005 à 15:16:58
je vais tacher d'etre plus clair
Je travaille en C# pour Pocket PC
je voudrais parcourir la liste des membres d'une classe de mon application, de facon physique (afin de pouvoir agir en écriture sur eux) et affecter une valeur à chaque membre, valeur issue d'une base de données.
il faut que je puisse parcourir cette liste, car il est possible que des membres soient ajoutés.
je ne peux donc pas appeler en dur la liste des membres.
Comment je peux faire ca dans les grandes lignes ?
Marsh Posté le 04-10-2005 à 16:17:34
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
Marsh Posté le 27-09-2005 à 13:03:32
Je voudrais savoir comment je peux afficher les [propriétés + valeur] d'une
classe particulière de mon application
Et surtout comment réaffecter la valeur de ces propriétés.
En lecture, c a dire afficher la liste des propriétés je pense que ca doit
pas être très compliqué, mais pour réaffecter les propriétés de ladite
classe dans la meme boucle que celle de l'affichage ...
Merci par avance pour un coup de main
si je suis pas clair dites le