Bonjour/Bonsoir à tous.
J'essaye de faire une methode qui me permette de parcourrir toutes les propriétés de ma classe.
Je me suis inspiré de ce qu'il y a dans la FAQ, malheureusement ca se passe mal
Ces propriétés peuvent retourner des string, int, ou encore booleen.
Pourquoi une telle methode?
Parceque au fil du temps, je vais rajouter des propriétés à ma classe, et je n'ai pas envie de devoir aller à chaque fois modifier ma méthode en concequence...
Voici un extrait de code, le probleme est que Activator.CreateInstance me jete en disant que le type (System.String) n'a pas de constructeur par defaut.
Peut etre que je me suis mal orienté dans mon choix, qu'en pensez vous?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 public void ApplyFields(AccesMode mode) { object obj = null; Type objType; String TypeStr; Regex regType = new Regex("( ).*"); foreach(MemberInfo Mi in typeof(CSettings).GetMembers()) { if (Mi.MemberType == MemberTypes.Property) { //Transforme "System.String MaProprio" en "System.String" //C'est le seul moyen que j'ai trouvé pour récupéré le type retourné par ma propriété TypeStr = regType.Replace(Mi.ToString(),""); objType = System.Type.GetType(TypeStr); if (objType != null) { //Exception à l'execution, on m'annonce que //le type System.String n'a pas de constructeur par defaut :( obj = System.Activator.CreateInstance(objType); } } }
Partager